使用Python覆盖AWS S3位置的spark数据框写入方法中的几个特定分区

时间:2018-06-20 05:07:20

标签: apache-spark dataframe pyspark apache-spark-sql

我想覆盖上周的几个特定分区,而不是使用Pyspark覆盖AWS S3中的所有分区。我正在尝试以下命令: 我从时间戳列中派生了一个额外的分区列extract_dt(Date)进行分区,但我不希望此列出现在我的输出文件中。

    for partition_col in df.select("extract_dt").distinct().rdd.map(
            lambda x: x.asDict()["extract_dt"]).collect():
        temp = location
        location = location + "extract_dt=" + str(partition_col)
        df.where(col('extract_dt') == str(partition_col)).write.mode('overwrite').format('orc').save(location)
        location = temp

其中df是具有要覆盖的增量数据的数据帧。

当我尝试上述命令时,它将extract_dt作为列写在输出文件中。

我的要求是仅覆盖df中指定S3://路径上的那些分区。有人可以帮我吗?

0 个答案:

没有答案