azure - maxRecordsPerFile 在 Azure Data Bricks 中不起作用

标签 azure pyspark apache-spark-sql databricks

df.write.option("header",True) \
        .option("maxRecordsPerFile", 100000) \
        .partitionBy("customer") \
        .mode("overwrite") \
        .csv("/mnt/Output/")

我正在使用上面的 pyspark 脚本根据客户列将我的大 CSV 文件分割成小块。 我正在使用 Azure Data Bricks。

maxRecordsPerFile 选项不起作用,它会在每个客户文件夹下创建多个文件,每个文件的记录少于 5K。

我怎样才能控制记录数?或者 如何在每个客户下只创建一个文件?

最佳答案

maxRecordsPerFile 仅应用于内部 Spark 分区级别,因此 Spark 完成的并行化可能不会超过 5k 条记录,因此您的 100000 值是无用的。在写入之前尝试使用合并来减少数据帧分区。

df.coalesce(1).write.option("header",True) \
    .option("maxRecordsPerFile", 100000) \
    .partitionBy("customer") \
    .mode("overwrite") \
    .csv("/mnt/Output/")

关于azure - maxRecordsPerFile 在 Azure Data Bricks 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74039387/

相关文章:

elasticsearch - pyspark-将dstream写入elasticsearch时出错

apache-spark-sql - 如何计算 pyspark dataframe 中的每日基础(时间序列)

java - 为什么我的 java lambda 表达式不能工作,而它的命令式风格可以正常工作?

azure - 可用性集中虚拟机的故障域

c# - 从 Web 角色重新启动 Azure 辅助角色

pyspark - 如何一次(在多个Jupyter Notebook中)运行多个Spark 2.0实例?

scala - 如何在没有 SQL 查询的情况下使用 Spark Dataframe 检查相等性?

scala - 检查列数据类型并仅在 Spark SQL 中对 Integer 和 Decimal 执行 SQL

azure - 允许 Azure 服务作为 Azure 数据库内的防火墙规则打开是否存在安全问题?

azure - 存储帐户上文件共享的 ARM 模板