У меня есть следующий фрейм данных
val tDataJsonDF = kafkaStreamingDFParquet
.filter($"value".contains("tUse"))
.filter($"value".isNotNull)
.selectExpr("cast (value as string) as tdatajson", "cast (topic as string) as env")
.select(from_json($"tdatajson", schema = ParquetSchema.tSchema).as("data"), $"env".as("env"))
.select("data.*", "env")
.select($"date", <--YYYY/MM/dd
$"time",
$"event",
$"serviceGroupId",
$"userId",
$"env")
Этот потоковый фрейм данных имеет дату столбца в формате - YYYY/MM/dd
.
Из-за этого, когда я использую этот столбец в качестве столбца разбиения в моей паркетной записи, Spark создает раздел как date=2018%04%12
.
Есть ли способ изменить значение столбца на лету в приведенном выше коде так, чтобы значение даты было YYYY-MM-dd
или YYYYMMd
.
Запрос записи паркета:
val tunerQuery = tunerDataJsonDF
.writeStream
.format("parquet")
.option("path",pathtodata )
.option("checkpointLocation", pathtochkpt)
.partitionBy("date","env","serviceGroupId")
.start()