【问题标题】:How to add a derived column to a dataframe using Scala如何使用 Scala 将派生列添加到数据框
【发布时间】:2017-09-05 20:12:37
【问题描述】:

我有一个带有列的数据框

  • patient_id,
  • DOB,
  • Gender,
  • marital_status,
  • smoking_status,
  • city

我需要从 DOB 列中提取年龄,并将新列 age 添加到我的数据框中。如何继续使用 Scala?

【问题讨论】:

  • 请提供示例输入数据、预期输出数据帧和您尝试过的代码。
  • 是的并添加printSchema的输出,只是为了知道它是一个字符串,一个java.sql.Date还是一个时间戳,thx
  • 也许这可以帮助你:Link about UDF solution

标签: scala hadoop apache-spark


【解决方案1】:
val df = sqlcontext.sql(" SELECT *, DATEDIFF(hour,DOB,"+GETDATE()+")/8766 AS AgeYearsIntTrunc")

【讨论】:

  • 为什么要除以8766?你能解释一下吗?
  • 假设每年有 8766 小时,相当于 365.25 天。由于没有 365.25 天的年份(0.25 是因为闰年),因此在人的出生日期附近,这将比正确的更频繁。如果需要准确,请参考this
  • 当我运行这个查询时,我得到一个错误:未找到:值 GETDATE
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-06-15
  • 2022-01-05
  • 2013-04-25
  • 1970-01-01
  • 1970-01-01
  • 2022-01-03
  • 1970-01-01
相关资源
最近更新 更多