当前原始数据在配置单元上。我想连接几个分区的TB配置单元表,然后将结果输出为Parquet格式的分区配置单元表。
我正在考虑将配置单元表的所有分区作为sparkDataframe加载。然后加入、分组等等。这是正确的方法吗?
最后,我将需要保存数据,我们是否可以将spark dataframe保存为parquet格式的动态分区hive表?如何处理元数据?
当前原始数据在配置单元上。我想连接几个分区的TB配置单元表,然后将结果输出为Parquet格式的分区配置单元表。
我正在考虑将配置单元表的所有分区作为sparkDataframe加载。然后加入、分组等等。这是正确的方法吗?
最后,我将需要保存数据,我们是否可以将spark dataframe保存为parquet格式的动态分区hive表?如何处理元数据?
1条答案
按热度按时间eoxn13cs1#
如果其中一个数据集比另一个数据集小得多,您可能需要考虑使用广播来提高数据传输效率。
根据数据的性质,您可以尝试按分组,然后加入。所以每台机器只需要处理一组特定的数据,减少了任务运行时传输的数据量。
hive支持直接将数据存储为parquet格式。https://cwiki.apache.org/confluence/display/hive/parquet. 你试过了吗?