我目前正在使用 pyarrow 进行分区,使用名为“req_moment”的列对 pyarrow 数据框中的数据进行分区。分区过程本身没问题,但是文件名中显示的时间戳被不同的字符污染(我认为代表空格和“:”)。我正在运行下面的代码:
pq.write_to_dataset(
new_df.to_arrow(),
f"abfss://{os.environ['STORAGE_ACCOUNT_CONTAINER']}/{os.environ['STORAGE_ACCOUNT_PATH']}",
partition_cols = ['req_moment']
filesystem=fs,
)
这会导致文件名如下所示:
/req_moment=2023-12-15%2009%3A31%3A18/d2c327fa52dd4c1ebd6afdf8f4cea7fe-0.parquet
所需的格式是:
/req_moment=2023-12-15 HH:mm:ss/d2c327fa52dd4c1ebd6afdf8f4cea7fe-0.parquet
这可能还是正常行为?
我尝试过转换列的数据类型等,但这一切似乎都没有帮助。
对于每个文件名运行取消引号以获取实际文本
import urllib.parse
for filename in filenames:
filename = urllib.parse.unquote(filename)