hive Apache spark:连接2个配置单元表的最佳方式

jdzmm42g  于 12个月前  发布在  Hive
关注(0)|答案(1)|浏览(117)

在性能方面,用spark连接2个hive表(外部)的最佳方法是什么?
使用Spark SQL
spark.sql("select * from tableA join tableB on a=b)
B)直接阅读 parquet 文件

val df1 = spark.read.parquet("/hdfs/location1")
val df2 = spark.read.parquet("/hdfs/location2")
val joined = df1.join(df2, Seq("id"), "inner")

有什么区别吗?如果table被管理,会有什么不同吗?
我注意到,计划是相同的,但加入表从Hive它总是下载的执行程序的整个文件大小。

icnyk63a

icnyk63a1#

我会说,这取决于开发人员在选择Spark SQL或DataFrame时的舒适度,他/她想要使用。就性能而言,这真的不重要,因为底层的spark内置函数相互镜像(DataFrame和Spark-SQL)。
不久前,当我有这个想法时,我正在浏览数据自白的博客-dataframes-vs-sparksql
他在博客的最后一部分提到,
我认为SparkSQL和DataFrames在管道中的区别可能比其他任何东西都更理论和情感。
我绝对同意这些句子。

相关问题