本文介绍了如何在pyspark-dataframe中将月份名称更改为其他语言的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用以下配置为数据库上的";date";创建表:

# 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()to_csv接受与标准CSV编写器相同的参数,因此可以在此处设置区域设置:

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)

打印

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

这篇关于如何在pyspark-dataframe中将月份名称更改为其他语言的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-30 11:55