我正在阅读一堆看起来像这样的日志:
id type amt
0 A 100
1 B 200
2 A 100
3 A 300
4 B 100
5 A 100
6 C 200
7 C 100
8 A 200
我想按类型对这些数据进行分区,因此A,B和C类型中的每一种都在自己的机器上。问题是分区步骤对于我的数据大小来说太慢了。数据以行格式呈现给我,所以我在每行读取,并解析它以获取类型等。有没有办法通过动态分区作为解析步骤的一部分来加速提取和分区?如果我想要做的就是提取数据,并将其写入磁盘分区,只是寻找有关如何加快速度的想法。我正在使用scala。
答案 0 :(得分:0)
如果您分享代码以了解您是如何做的话可以提供帮助 编写由字段分区的文件的最简单方法是将输入更改为数据集,然后:
result.repartition($"type").write.save(/.../path)
如果要放入带有分区列的hive表,请尝试:
result.repartition($"type").partitionBy("type").write.save(/.../path_to_table)
它会给出一个像/ user / hive / warehouse / table_name / type = A / part - ***
这样的路径