作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有一个注册为 tempView 的 dataFrame 和一个要加入的 Hive 表
df1.createOrReplaceTempView("mydata")
df2 = spark.sql("Select md.column1,md.column2,mht.column1 \
from mydata md inner join myHivetable mht on mht.key1 = md.key1 \
where mht.transdate between '2017-08-01' and '2017-08-10' ")
这个连接是如何发生的。如果Hive表中的数据量很大,spark会尝试将hive表读入内存或者决定将tempView表写入hive。
在第一个答案后添加以下内容以获取更多详细信息:
假设我们有
100 行作为 Spark 中名为 TABLE_A 的临时 View 。
Hive TABLE_B 中的 10 亿行表。
下一步我们需要加入 TABLE_A 和 TABLE_B。
TABLE_B 上有一个日期范围条件。
因为表 TABLE_B 很大。将 spark 将整个表 TABLE_B 读入内存或决定将 TABLE_A 写入 Hadoop 中的临时空间以执行 Hive Join 或者它将如何智能地找出执行连接以提高性能的最佳方式
最佳答案
Hive 上下文将已注册临时表/ View 的信息存储在 Metastore 中。这允许对数据执行类似 SQL 的查询操作 - 我们仍然可以获得与其他方式相同的性能。
关于hadoop - pySpark 如何将 TempView 表加入到 Hive 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45891196/
我是一名优秀的程序员,十分优秀!