apache-spark - Spark 在分区内创建额外的分区
问题描述
我有一个 Spark 程序,它从文本文件中读取数据作为 RDD,并使用 spark-sql 转换为 Parquet 文件,并使用单个分区键进行分区。有时,它不会创建一个分区,而是创建两个分区,即分区内的一个分区。
我的数据按日期分区,输出文件夹位于 s3://datalake/intk/parquetdata 中。
运行 Spark 作业后,我看到的输出为:
s3://datalake/intk/parquetdata/datekey=102018/a.parquet
s3://datalake/intk/parquetdata/datekey=102118/a.parquet
s3://datalake/intk/parquetdata/datekey=102218/datekey=102218/a.parquet
代码片段:
val savepath = "s3://datalake/intk/parquetdata/"
val writeDF = InputDF.write
.mode(savemode)
.partitionBy(partitionKey)
.parquet(savePath)
我在 EMR 集群版本 5.16、Spark 版本 2.2、Scala 版本 2.11 中运行我的 Spark 作业,输出位置是 s3。我不确定为什么会发生这种行为,并且我没有看到这个问题遵循任何模式,并且这个分区仅偶尔发生一次。
解决方案
推荐阅读
- javascript - 如何在函数完成后运行 return
- python - 如何修复 Pandas 中的解析错误读取 python 中的 csv?
- php - 对带有 ID 的产品发表评论
- java - java - 如何完全停止/终止已经提交给Java ExecutorService 的任务?
- python-3.x - 迭代 Pandas DataFrame 列中的列表
- vhdl - 在 VHDL 中使用 modelsim 编程加法器时出错
- java - 调用 getter 时出现 java.lang.NullPointerException
- c++ - 为什么在 C++20 中 std::vector 运算符 == 不适用于具有不同分配器的向量?
- ios - 如何在 SwiftUI 中使用 DatePicker 创建警报
- serverless-framework - 无服务器:如何在没有 .serverless 目录的情况下删除/部署部署以进行团队协作