在 Spark Dataframe 中将字符串转换为日期

2023-11-29

我有一个数据框(df1)与 2StringType fields.

Field1(字符串类型)值-X

Field2(字符串类型)值-20180101

我想做的就是创建另一个数据框(df2) from df1有 2 个字段-

Field1(字符串类型)值-X

Field2(日期类型)值-2018-01-01

我正在使用下面的代码-

df2=df1.select(
     col("field1").alias("f1"),
     unix_timestamp(col("field2"),"yyyyMMdd").alias("f2")
)

df2.show

df2.printSchema

对于这个字段 2,我尝试了多种方法 -unix_timestamp , from_unixtimestamp, to_date, cast(“date”)但没有任何作用

我需要以下架构作为输出:

df2.printSchema
|-- f1: string (nullable = false)
|-- f2: date (nullable = false)

我正在使用 Spark 2.1


to_date似乎可以很好地满足您的需要:

import org.apache.spark.sql.functions._

val df1 = Seq( ("X", "20180101"), ("Y", "20180406") ).toDF("c1", "c2")

val df2 = df1.withColumn("c2", to_date($"c2", "yyyyMMdd"))

df2.show
// +---+----------+
// | c1|        c2|
// +---+----------+
// |  X|2018-01-01|
// |  Y|2018-04-06|
// +---+----------+

df2.printSchema
// root
//  |-- c1: string (nullable = true)
//  |-- c2: date (nullable = true)

[UPDATE]

对于 Spark 2.1 或更早版本,to_date不将格式字符串作为参数,因此显式字符串格式化为标准yyyy-MM-dd格式使用,例如,regexp_replace需要:

val df2 = df1.withColumn(
  "c2", to_date(regexp_replace($"c2", "(\\d{4})(\\d{2})(\\d{2})", "$1-$2-$3"))
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Spark Dataframe 中将字符串转换为日期 的相关文章

随机推荐

  • jQuery Ajax请求内容下载为空

    我有一个以 PDF 格式返回输出的 PHP 文件 如果我直接访问该文件 则工作正常 我想通过 AJAX 检索 PDF 文件 在原生 Javascript 中 它工作得很好 var req new XMLHttpRequest req ope
  • 如何使用 SVG 翻译将 d3.js 投影居中到给定的纬度和经度值?

    我正在使用 d3 渲染 GeoJSON 世界地图的墨卡托投影 我希望能够使用 d3 进行缩放 并在用户逐步执行我的应用程序时将地图转换为已知的纬度和经度值 projection center https github com mbostoc
  • 将文件中的部分 url 替换为 sed

    我有一个充满网址的文件 如下所示 https testing this string for now 我需要专门使用 sed 将它们全部替换为 https testing this now 并在最后保存更新内容的文件 所以实际上删除 无论
  • 如何通过 bat 文件关闭、重新启动或注销 Windows?

    我一直在使用远程桌面连接进入工作站 但在这种环境下 我无法使用 开始 菜单中的电源选项 我需要一种替代方法来关闭或重新启动 如何通过命令行控制计算机的电源状态 最常见的使用方法shutdown命令是 shutdown s 关闭 shutdo
  • 使用“asyncio”在单独的线程中运行的高速公路中从外部发送消息

    我想从 MyServerProtocol 类外部调用 sendMessage 方法并向服务器发送消息 答案是very如同this 但我需要使用 asyncio 而不是 twins 有人可以建议我一个解决方案吗 一个例子源自this也将不胜感
  • Angular 4 以 HTML 形式输出完整的 HTML 语法代码作为原始文本

    我搜索了所有可能的答案 但没有一个有效 所有innerHTML 和PRE 标记示例都适用于代码或文本 但不适用于HTML 这正是我想要放入变量中的内容 div div
  • 以编程方式向文本块添加一行

    我知道如何向画布 网格 布局添加控件 只需调用canvas Childern Add 但是 当我想在文本块中嵌入某些内容时 我似乎找不到它的方法 文本块不包含Add方法或任何东西 所以我有点迷失了 我试图转换成 C 的 XAML 是
  • 让 VSCode 使用全局 python 配置,而不是虚拟环境?

    我想使用 Visual Studio Code 来编辑 Python 程序 为了保持其可移植性 我希望将 Python 程序包含在 Python 虚拟环境中 为了保持 venv 小 我想只安装 Python 程序需要的东西 并且特别不安装
  • Unity3D - 我可以使用 .NET 4.5 程序集作为外部库吗?

    我想使用在 NET Framework v4 5 中实现的一组功能 由于Unity3D在Mono运行时运行 相当于 NET 3 5 我认为使用 NET4 5程序集作为外部插件 是否可以 如果可能 该库将使用哪个运行时 Mono 或程序集的目
  • Python IDLE:更改 Python 版本

    我的机器上有 Python 2 x 和 3 x Mac OS X 10 6 对于某些事情我想使用版本 2 但对于其他事情我想要版本 3 我喜欢用于编辑 运行的 IDLE 软件 但它总是使用版本 3 有什么方法可以更改IDLE使用的解释器的版
  • 我们如何使用 Watson Discovery Service 获取文档文件 URL?

    我没有看到使用可用 api 文档的解决方案 它在 Web 控制台上也不可用 是否有可能获得file url使用沃森发现服务 如果您需要存储原始源 文件 URL 您可以将其作为字段包含在 Discovery 服务的文档中 然后您将能够在需要时
  • Unity3D连接MySQL错误

    我正在尝试让 Unity 客户端建立与 MySQL 服务器的连接 纯粹用于读取 建立连接时出现错误 My Code using UnityEngine using System using System Data using System
  • 使用 pandas DataFrame 中的数据创建多个 Excel 工作表

    我有一个工作表 我已将其读入数据帧并应用了前向填充 ffill 方法 然后我想创建一个包含两个工作表的 Excel 文档 一个工作表将在应用 ffill 方法之前在数据框中包含数据 下一个工作表将包含应用了 ffill 方法的数据框 最终
  • 浮点算术以及 x86 和 x64 上下文

    我们在 VisualStudio 进程上下文 x86 上下文 和 VisualStudio 上下文 x64 上下文 之外运行一些代码 我注意到以下代码在两种上下文中提供了不同的结果 x86 中的 100000000000 和 x64 中的
  • UnsupportedOperationException:可序列化不支持默认值 - Jetpack Compose Navigation

    我正在使用 Jetpack Compose Navigation 将 Health 实例传递给另一个可组合项 下面的代码显示了我的健康等级和我的目的地 健康 kt data class Health val height Int val w
  • Python:报纸模块 - 有什么方法可以直接从 URL 获取文章?

    我正在使用 python 的报纸模块找到here 在教程中 它描述了如何将不同报纸的构建集中起来 它同时生成它们 参见上面链接中的 多线程文章下载 有什么方法可以直接从网址列表中提取文章吗 也就是说 有什么方法可以将多个 url 输入到以下
  • 计算两个任意形状之间的最小距离

    我有两个任意形状 现在我想计算两个形状之间的最小距离 这里我附上图片 首先绘制部分完成 这个形状是圆弧和直线的组合 现在 当我要计算这些形状之间的最小距离时 我遇到了问题 使用 GWT java html5 canvas 绘制此形状 为了计
  • Symfony 1.4 改进主义 save() 方法

    我的数据库中有 500 个条目 在我的后端我有行动 例如 public function executeMyAction sfWebRequest request Get some data from table templates Doc
  • python中的并行/多线程差分进化

    我正在尝试对生化过程进行建模 并将我的问题构建为优化问题 并使用它来解决differential evolution来自 scipy 到目前为止 一切顺利 我对具有 15 19 个参数的简化模型的实现感到非常满意 我扩展了模型 现在有 32
  • 在 Spark Dataframe 中将字符串转换为日期

    我有一个数据框 df1 与 2StringType fields Field1 字符串类型 值 X Field2 字符串类型 值 20180101 我想做的就是创建另一个数据框 df2 from df1有 2 个字段 Field1 字符串类