当前位置: 首页 > 知识库问答 >
问题:

如何在Dataframes中将列类型从字符串更改为日期?

宋奇希
2023-03-14

我有一个dataframe有两列(C,D)被定义为string列类型,但列中的数据实际上是日期。例如,C列的日期为“01-apr-2015”,而D列的日期为“20150401”。我想将这些数据更改为日期列类型,但我没有找到一个好的方法。我查看了在Spark SQL的DataFrame中将string列类型转换为Date列类型所需的堆栈溢出。日期格式可以是“01-apr-2015”,我看了这篇文章,但它没有与日期相关的信息

共有1个答案

戚飞雨
2023-03-14

火花>=2.2

可以使用to_date:

import org.apache.spark.sql.functions.{to_date, to_timestamp}

df.select(to_date($"ts", "dd-MMM-yyyy").alias("date"))

to_timestamp:

df.select(to_date($"ts", "dd-MMM-yyyy").alias("timestamp"))
import org.apache.spark.sql.functions.{unix_timestamp, to_date}

val df = Seq((1L, "01-APR-2015")).toDF("id", "ts")

df.select(to_date(unix_timestamp(
  $"ts", "dd-MMM-yyyy"
).cast("timestamp")).alias("timestamp"))

如果使用未修补版本UNIX_TIMESTAMP,输出需要乘以1000。

 类似资料:
  • 问题内容: 我有以下数据框: 现在,我想将Vacationdate列的数据类型更改为String,以便数据框也采用这种新类型并覆盖所有条目的数据类型数据。例如写后: Vacationdate的数据类型应被覆盖。 我已经使用过诸如cast,StringType或astype之类的函数,但是我没有成功。你知道怎么做吗? 问题答案: 让我们创建一些虚拟数据: 如果Spark> = 1.5.0,则可以使用

  • 下面是一个名为“containers”的表的片段。 如何将“产品”列更改为“字符变化[]”,并将相应的修饰符更改为默认值“{}”::字符变化[]?本质上,我想将字符串转换为字符串数组。注意,“产品”列对字符数没有限制。 抛出以下错误 错误:“products”列不能转换为不同类型的字符[]

  • 问题内容: (大家好。我特别喜欢SQL和MySQL。我知道一些PHP。) 我有一个包含“ date_string”列的表。出于传统原因,这是一个文本字段,其中包含d / m / YY格式的日期。例如2009年11月22日为“ 22/11/09”。 问题:如何将此列中的所有字段都转换为标准的MySQL日期格式(YYYY-mm-dd),就地? 或者,由于列类型是文本,因此无法将其更改到位,我该如何获取

  • 下面是我做的方式: 我只是想知道,这是正确的方法吗,因为在运行逻辑回归时,我得到了一些错误,所以我想知道,这是麻烦的原因吗。

  • 我想将我的IDE连接到OracleSQLDeveloper。因此我必须使用这行代码: 要输入密码,我使用: 我想知道如何将这个JPasswordField转换成字符串,这样我就可以使用代码I的“Connect”行(这一行仅适用于字符串) 编辑:这是输入密码的代码。我在stackoverflow上找到了它:

  • 问题内容: 我将Pandas’ver 0.12.0’与Python 2.7结合使用,并具有如下数据框: 该系列由一些整数和字符串组成。它在默认情况下是。我想将的所有内容转换为字符串。我试过了,产生下面的输出。 1) 如何将的所有元素转换为String? 2) 我最终将用于为数据帧建立索引。与具有整数索引相比,在数据帧中具有String索引会降低速度吗? 问题答案: 您可以将id的所有元素转换为使用