Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使数据帧分区在S3键名中包含文字冒号而不是编码的(%3A)冒号_Python_Apache Spark_Pyspark_Apache Spark Sql_Pyspark Sql - Fatal编程技术网

Python 如何使数据帧分区在S3键名中包含文字冒号而不是编码的(%3A)冒号

Python 如何使数据帧分区在S3键名中包含文字冒号而不是编码的(%3A)冒号,python,apache-spark,pyspark,apache-spark-sql,pyspark-sql,Python,Apache Spark,Pyspark,Apache Spark Sql,Pyspark Sql,在pyspark中,我有一个数据框,其中包含一个日期列,日期被截断为当天 # +-------------------+ # |d | # +-------------------+ # |2018-04-07 00:00:00| # +-------------------+ 当我这样做时: df.write.partitionBy('d')

在pyspark中,我有一个数据框,其中包含一个日期列,日期被截断为当天

# +-------------------+                                                           
# |d                  |
# +-------------------+
# |2018-04-07 00:00:00|
# +-------------------+
当我这样做时:

df.write.partitionBy('d').parquet('s3://somebucket/out/')
。。。我希望能找到名为:

s3://somebucket/out/d=2018-04-07 00:00:00/part-*-c*.snappy.parquet
。。。但是,我发现:

s3://somebucket/out/d=2018-04-07 00%3A00%3A00/part-*-c*.snappy.parquet
(请注意“%3A”而不是“:”)

这对雅典娜/hive/etc分区造成了严重破坏


有没有办法让pyspark使用实冒号而不是将其编码为%3A?

如何更改日期格式?事实上,你甚至不需要时间信息,所以你可以简单地去掉那部分…@ErnestKiwele-当然。能否在.partitionBy中指定日期格式?还是最好在写入之前在数据帧上选择?如果是时间戳,我只需更改列的数据类型,如果是字符串,则更改格式。是,在调用
之前。编写