如何在 Pyspark 中将阿拉伯文本 (??-??-????) 中的日期时间解析为英文日期

Ati*_*tif 5 python apache-spark pyspark

我正在读取包含一些日期列的 JSON 文件。问题是某些日期列包含阿拉伯/乌尔都语文本中的日期:

\n
\xd9\xa0\xd9\xa4-\xd9\xa2\xd9\xa5-\xd9\xa2\xd9\xa0\xd9\xa2\xd9\xa1\n
Run Code Online (Sandbox Code Playgroud)\n

我想将其转换为英文日期yyyy-mm-dd格式。\n如何在 Pyspark 中实现此目的?

\n

Moh*_*B C 5

您可以通过将类型转换为十进制将阿拉伯数字转换为英语。

\n
df = spark.createDataFrame([('\xd9\xa0\xd9\xa4-\xd9\xa2\xd9\xa5-\xd9\xa2\xd9\xa0\xd9\xa2\xd9\xa1',)],['arabic'])\n\ndf.withColumn('split', split('arabic', '-')) \\\n.withColumn('date', concat_ws('-', col('split')[2].cast('decimal'), col('split')[0].cast('decimal'), col('split')[1].cast('decimal'))) \\\n.drop('split').show()\n\n+----------+---------+\n|    arabic|     date|\n+----------+---------+\n|\xd9\xa0\xd9\xa4-\xd9\xa2\xd9\xa5-\xd9\xa2\xd9\xa0\xd9\xa2\xd9\xa1 |2021-4-25|\n+----------+---------+\n
Run Code Online (Sandbox Code Playgroud)\n