hadoop - 根据列值对数据进行分区

标签 hadoop apache-spark hive apache-pig partitioning

您好,我有如下数据源

ID       Date            Page

100      27-10-2015     google
102      27-10-2015     facebook
102      27-10-2015     instagram
104      28-10-2015     yahoo
105      30-10-2015     bing

我想以 Parquet 格式存储这些数据,格式如下所示

/foldername/columname=value/data.parquet

例如这里

/output/ID=102/data.parquet
/output/ID=104/data.parquet

这里的 data.parquet 包含 parquet 格式的列 ID=102 的值。

谁能帮我实现这个目标?

最佳答案

使用数据帧你的代码应该是这样的:

val df = yourData
df.write.partitionBy(['ID']).format("parquet").save(dest, mode="append")

关于hadoop - 根据列值对数据进行分区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33494736/

相关文章:

python - 在 PySpark UDF pickle 中使用外部库错误

hadoop - Hadoop 集群上的 Hive/Map-Reduce 作业 : How to (roughly) calculate the diskspace needed?

mysql - 在 Hive 中使用 case 语句填充前面的值

java - HBase多表扫描作业

php - 错误:未能找到建议检查集群运行状况的数据节点

java - Hadoop:如何为每个值提供一个全局唯一 ID 号作为 Mapper 中的键?

hadoop - 在 pig 脚本中调用sqoop

scala - 为spark rdd元素添加前缀

apache-spark - Spark独立安装无法连接到master

apache-spark - 等效于或替代Jupyter的Databricks display()函数