java - 如何连接两个 Parquet 数据集?

标签 java apache-spark apache-spark-sql apache-spark-dataset

我正在使用 Java 从 Spark 中的 Parquet 文件加载两个数据集。我需要创建一个新的作为两者的组合。在常规 SQL 中,我会连接表,应用一些 where 条件并创建一个新表。 Spark(SQL)有什么方法可以实现这一点吗?我读到 RDD 是可能的,但我真的不想将数据写回磁盘。

最佳答案

这几乎就像 Spark SQL 是为默认格式的给定 Parquet 而设计的。

读取 Parquet 文件很容易,看起来像:

val fileOne = spark.read.load(...)
val fileTwo = spark.read.load(...)

加入 Spark SQL 也很简单(并且隐藏您是否处理 Parquet 数据集或其他任何内容)。使用 join 运算符。

val joined = fileOne.join(fileTwo).where(...)

有了这个,保存到数据存储,例如一个大(ger) Parquet 文件,再次变得轻而易举。

joined.write.save(...)

你已经完成了。恭喜!

请阅读Spark SQLDataset API .

关于java - 如何连接两个 Parquet 数据集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43495883/

相关文章:

scala - 具有非列参数的 Spark udf

java - new Date() 结果并不总是正确的

java - Servlet 异常 : invalid driver class name

apache-spark - 查找 Hive/Impala 表的压缩详细信息

scala - 如何在spark cassandra DataFrame中设置一致性级别ONE和ifNotExists

python - Spark worker 不断删除和添加执行程序

scala - 在范围内找不到 Spark 隐式编码器

scala - 使用withColumn将两列添加到现有DataFrame

java - Android - 应用程序使用应用程序名称而不是 Intent.EXTRA_SHORTCUT_NAME 创建快捷方式

java - 分块发送大图像