【问题标题】:Partition by columns: data being truncated to another partition按列分区:数据被截断到另一个分区
【发布时间】:2020-12-17 19:30:33
【问题描述】:

我在 PySpark 中使用 repartitionByRange,同时保存了 2,000 多个 CSV。

df.repartitionByRange(<no of unique values of col>, col).write\
        .option("sep", "|")\
        .option("header", "true")\
        .option("quote",  '"')\
        .option("escape", '"')\
        .option("nullValue", "null")\
        .option("quoteAll", "true")\
        .mode('overwrite')\
        .csv(path)

然后使用它们包含的列的唯一 ID 重命名每个分区。但是,大约 1-2% 的生成的 CSV 具有多个唯一 ID。请协助解决这个错误重新分区的问题。

【问题讨论】:

    标签: pyspark partitioning azure-databricks


    【解决方案1】:

    如果您想控制文件的写入方式,您必须改用bucketBy方法。 repartition 不影响保存的文件,只是处理。

    您可以参考这篇文章了解更多信息: What is the difference between partitioning and bucketing in Spark?

    所以是这样的:

    df.write.format('parquet').bucketBy(10, 'column')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-01
      • 1970-01-01
      • 2020-05-06
      • 1970-01-01
      • 1970-01-01
      • 2015-06-05
      相关资源
      最近更新 更多