我正在尝试使用以下配置在 Databricks 上创建“日期”表:
# Get date range
dateFrom = dbutils.widgets.get("date_from")
dateTo = dbutils.widgets.get("date_to")
dateDF_TESTE = spark.sql("SELECT sequence(to_date('{0}'), to_date('{1}'), interval 1 day) AS date".format(dateFrom, dateTo))\
.select(F.explode("date").alias('DSC_DATE'))'''
但是,当我添加包含这些数据的列时,我只能获取英文信息,例如月份名称或星期几。
我打算将此信息更改为另一种语言(葡萄牙语),但没有成功。我尝试过使用语言环境,但它不起作用。
import locale
# use user's default settings
locale.setlocale(locale.LC_ALL, 'pt_PT.utf8')
从 Spark 3.0 开始,可以使用to_csv() https://spark.apache.org/docs/latest/api/python/reference/api/pyspark.sql.functions.to_csv.html在单个列上。to_csv
接受与标准 csv writer 相同的参数,因此可以在此处设置区域设置:
from pyspark.sql import functions as F
dateDF_TESTE.withColumn("formatted_date",
F.to_csv(F.struct(F.col("DSC_DATE")),
{"dateFormat": "EEEE, d 'de' MMMM 'de' yyyy", "locale": "pt", "quote":""}))\
.show(truncate=False, n=5)
prints
+----------+------------------------------------+
|DSC_DATE |formatted_date |
+----------+------------------------------------+
|2020-01-01|Quarta-feira, 1 de Janeiro de 2020|
|2020-01-02|Quinta-feira, 2 de Janeiro de 2020|
|2020-01-03|Sexta-feira, 3 de Janeiro de 2020 |
|2020-01-04|Sábado, 4 de Janeiro de 2020 |
|2020-01-05|Domingo, 5 de Janeiro de 2020 |
+----------+------------------------------------+
only showing top 5 rows
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)