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|
#+----------+-----+