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\nRun Code Online (Sandbox Code Playgroud)\n我想将其转换为英文日期yyyy-mm-dd格式。\n如何在 Pyspark 中实现此目的?
您可以通过将类型转换为十进制将阿拉伯数字转换为英语。
\ndf = 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+----------+---------+\nRun Code Online (Sandbox Code Playgroud)\n