火花结构流:镶木地板分区名称唯一性

问题描述 投票:1回答:1

使用Spark Structured stream 2.1从Kafka流式传输时,partitionBy是一个字符串列(包含yyyy-mm-dd格式的日期字符串),我预计会有一个

interval27e/_spark_metadata
interval27e/interval_read_date=2010-10-27 08%3A02%3A48
interval27e/interval_read_date=2010-10-30 04%3A27%3A34
interval27e/interval_read_date=2010-11-03 02%3A22%3A13
interval27e/interval_read_date=2010-11-03 07%3A27%3A08
interval27e/interval_read_date=2010-11-14 08%3A37%3A52
interval27e/interval_read_date=2010-11-19 01%3A46%3A50

Spark每个日期附加多个目录的字符串(“08%3A02%3A48”)。

这是writeStream命令:

interval3=interval2     \
  .writeStream 
  .format("parquet") 
  .option("path","/user/usera/interval27e") 
  .partitionBy("interval_read_date") 
  .trigger(processingTime='15 seconds') 
  .option("checkpointLocation", "/user/usera/checkpoint27e") 
  .start()

关于用分区编写镶木地板的其他stackOverflow问题,我不会发现这种情况。

如何在没有将该字符串附加到目录名称的镶嵌目录中写入分区?

python apache-spark spark-streaming
1个回答
1
投票

看起来interval_read_date除了时间戳之外根本不是数据/类似日期的字符串。因此,%3A is percent encoded :的名字是:

interval_read_date=2010-10-27 08:02:48
interval_read_date=2010-10-30 04:27:34
...

请仔细检查您是否使用了正确的数据,并在必要时进行截断或强制转换。

© www.soinside.com 2019 - 2024. All rights reserved.