首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用scala将Azure数据库中的月份名映射为月份数

使用scala将Azure数据库中的月份名映射为月份数
EN

Stack Overflow用户
提问于 2022-11-18 18:30:56
回答 1查看 59关注 0票数 0

需要使用scala将Azure中的月份名映射为月份数。我有列名周期,它有类似月份名称的数据(如一月、二月、三月、.、11月、12月),我想用月份号(比如0102.03,...,11,12)替换这个月名。结果应类似于一月、二月、三月、.、11月、12月的,以0.0 0 2,03,...,11,12代替

代码语言:javascript
复制
      "Jan"  -> 01,
      "Feb"  -> 02,
      "Mar"  -> 03,
      "Apr"  -> 04,
      "May"  -> 05,
      "Jun"  -> 06,
      "Jul"  -> 07,
      "Aug"  -> 08,
      "Sep"  -> 09,
      "Oct"  -> 10,
      "Nov"  -> 11,
      "Dec"  -> 12

我是scala和azure databricks的新手。我尝试了映射方法,但没有得到想要的解决方案。在这里输入图像描述

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-19 09:49:11

我有一个名为month_in_words列的dataframe,如下所示:

  • 现在,为了将这个月的单词转换为月份号,首先我创建了一个映射,其中键是月名,值是字符串(因为我们需要月份号为01,而不是1)。
代码语言:javascript
复制
val monthNumber = Map(
      "Jan" -> "01",
      "Feb" -> "02",
      "Mar" -> "03",
      "Apr" -> "04",
      "May" -> "05",
      "Jun" -> "06",
      "Jul" -> "07",
      "Aug" -> "08",
      "Sep" -> "09",
      "Oct" -> "10",
      "Nov" -> "11",
      "Dec" -> "12"
  )
  • 现在,您可以使用以下代码将月份名称转换为月份号:
代码语言:javascript
复制
var final_df = df.rdd.map(f => {
    val number = monthNumber(f.getString(0))
    (f.getString(0),number)
}).toDF("month_in_words","month_in_number")
//display(df)

  • 要直接转换,可以使用以下代码:
代码语言:javascript
复制
var final_df = df.rdd.map(f => monthNumber(f.getString(0))).toDF("month_in_number")
//display(final_df)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74493973

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档