当前的原始数据在Hive上 . 我想连接几个分区的TB级Hive表,然后将结果作为Parquet格式的分区Hive表输出 .
我正在考虑将Hive表的所有分区加载为Spark数据帧 . 然后加入,分组等等 . 这是正确的方法吗?
最后我需要保存数据,我们可以将Spark数据帧保存为Parquet格式的动态分区Hive表吗?如何处理元数据?
如果多个数据集中的一个比另一个小得多,您可能需要考虑使用 Broadcast 来提高数据传输效率 .
根据数据的性质,您可以尝试分组依据,然后加入 . 因此每台机器只需要处理一组特定的数据,减少任务运行期间传输的数据量 .
Hive支持直接将数据存储为Parquet格式 . https://cwiki.apache.org/confluence/display/Hive/Parquet . 你试过试试吗?
1 回答
如果多个数据集中的一个比另一个小得多,您可能需要考虑使用 Broadcast 来提高数据传输效率 .
根据数据的性质,您可以尝试分组依据,然后加入 . 因此每台机器只需要处理一组特定的数据,减少任务运行期间传输的数据量 .
Hive支持直接将数据存储为Parquet格式 . https://cwiki.apache.org/confluence/display/Hive/Parquet . 你试过试试吗?