Return 指定语言环境中的月份名称
Return month name in specified locale
使用 date_format
我们可以从日期中提取月份名称:
from pyspark.sql import functions as F
df = spark.createDataFrame([('2021-05-01',),('2021-06-01',)], ['c1']).select(F.col('c1').cast('date'))
df = df.withColumn('month', F.date_format('c1', 'LLLL'))
df.show()
#+----------+-----+
#| c1|month|
#+----------+-----+
#|2021-05-01| May|
#|2021-06-01| June|
#+----------+-----+
它是英文的,但我想得到它的法语版本。
我发现 Spark 知道 法语中的月份名称!
spark.sql("select to_csv(named_struct('date', date '1970-06-01'), map('dateFormat', 'LLLL', 'locale', 'FR'))").show()
#+---------------------------------------------+
#|to_csv(named_struct(date, DATE '1970-06-01'))|
#+---------------------------------------------+
#| juin|
#+---------------------------------------------+
但我找不到让 date_format
接受其他语言环境的方法。这些功能如何结合才能产生以下结果?
+----------+-----+
| c1|month|
+----------+-----+
|2021-05-01| mai|
|2021-06-01| juin|
+----------+-----+
感谢 this clever guy,这是 return 另一种语言(语言环境)结果的非常好的解决方案:
df = df.withColumn('month', F.to_csv(F.struct('c1'), {'dateFormat': 'LLLL', 'locale': 'fr'}))
df.show()
#+----------+-----+
#| c1|month|
#+----------+-----+
#|2021-05-01| mai|
#|2021-06-01| juin|
#+----------+-----+
使用 date_format
我们可以从日期中提取月份名称:
from pyspark.sql import functions as F
df = spark.createDataFrame([('2021-05-01',),('2021-06-01',)], ['c1']).select(F.col('c1').cast('date'))
df = df.withColumn('month', F.date_format('c1', 'LLLL'))
df.show()
#+----------+-----+
#| c1|month|
#+----------+-----+
#|2021-05-01| May|
#|2021-06-01| June|
#+----------+-----+
它是英文的,但我想得到它的法语版本。
我发现 Spark 知道 法语中的月份名称!
spark.sql("select to_csv(named_struct('date', date '1970-06-01'), map('dateFormat', 'LLLL', 'locale', 'FR'))").show()
#+---------------------------------------------+
#|to_csv(named_struct(date, DATE '1970-06-01'))|
#+---------------------------------------------+
#| juin|
#+---------------------------------------------+
但我找不到让 date_format
接受其他语言环境的方法。这些功能如何结合才能产生以下结果?
+----------+-----+
| c1|month|
+----------+-----+
|2021-05-01| mai|
|2021-06-01| juin|
+----------+-----+
感谢 this clever guy,这是 return 另一种语言(语言环境)结果的非常好的解决方案:
df = df.withColumn('month', F.to_csv(F.struct('c1'), {'dateFormat': 'LLLL', 'locale': 'fr'}))
df.show()
#+----------+-----+
#| c1|month|
#+----------+-----+
#|2021-05-01| mai|
#|2021-06-01| juin|
#+----------+-----+