当前位置: 首页 > 知识库问答 >
问题:

如何将Spark数据帧存储为拼花格式的动态分区配置单元表?

师增
2023-03-14

当前原始数据位于配置单元上。我想连接几个分区的TB配置单元表,然后以拼花格式将结果输出为分区配置单元表。

我正在考虑将配置单元表的所有分区作为Spark数据帧加载。然后加入、分组等。这是正确的方式吗?

最后,我需要保存数据,我们可以将Spark dataframe保存为拼花格式的动态分区配置单元表吗?如何处理元数据?

共有1个答案

萧宁
2023-03-14

>

  • 如果多个数据集中的一个数据集比另一个数据集小得多,您可能需要考虑使用广播来提高数据传输效率。

    根据数据的性质,您可以尝试分组方式,然后加入。因此,每台机器只需要处理一组特定的数据,减少了任务运行期间传输的数据量。

    Hive支持将数据直接存储到拼花地板格式。https://cwiki.apache.org/confluence/display/Hive/Parquet.你试过了吗?

  •  类似资料:
    • 我试图做一些非常简单的事情,我有一些非常愚蠢的挣扎。我想这一定与对火花的基本误解有关。我非常感谢任何帮助或解释。 我有一张非常大的桌子(~3 TB,~300毫米行,25k个分区),在s3中保存为拼花地板,我想给一些人一个很小的拼花文件样本。不幸的是,这要花很长时间才能完成,我不明白为什么。我尝试了以下方法: 然后当这不起作用时,我尝试了这个,我认为应该是一样的,但我不确定。(我添加了,以尝试调试。

    • 我有两个Spark的数据帧。其中一个是使用HiveContext从配置单元表接收的: 第一个数据帧保存时没有出现问题,但当我尝试以同样的方式保存第二个数据帧()时,我得到了这个错误 文件“/home/jup-user/testdb/scripts/caching.py”,第90行,spark_df_test.write.mode(“overwrite”).format(“orc”).saveAsT

    • 先声明一下,这不是Hadoop的生产环境。这是一个我们测试工作流的单节点环境

    • 我正试图在模式下将写入文件格式(在最新的pandas版本0.21.0中引入)。但是,文件将被新数据覆盖,而不是附加到现有文件。我错过了什么? 写入语法是 读取语法是

    • 我们需要每天将文本数据转换为拼花地板/avro,如果输入来自多个具有不同结构的源,我们希望使用基于spark sql的scala代码来实现这一点,而不考虑分隔符和列数或结构。

    • 更新:恰恰相反。实际上,我们的表非常大,就像3个TB有2000个分区。3TB/256MB实际上会达到11720,但我们的分区数量与表的物理分区数量完全相同。我只想了解任务是如何在数据量上生成的。