将“MM/dd/yyyy HH:mm”形式的字符串转换为 Spark 数据帧中的 joda 日期时间

2024-04-02

我正在读取 csv 文件,其中一列中有一个应转换为日期时间的字符串。该字符串的形式为MM/dd/yyyy HH:mm。但是,当我尝试使用 joda-time 对其进行转换时,我总是收到错误:

线程“main”中的异常 java.lang.UnsupportedOperationException:不支持 org.joda.time.DateTime 类型的架构

我不知道具体是什么问题...

 val input = c.textFile("C:\\Users\\AAPL.csv").map(_.split(",")).map{p => 
      val formatter: DateTimeFormatter = DateTimeFormat.forPattern("MM/dd/yyyy HH:mm");
      val date: DateTime = formatter.parseDateTime(p(0));
      StockData(date, p(1).toDouble, p(2).toDouble, p(3).toDouble, p(4).toDouble, p(5).toInt, p(6).toInt)
}.toDF()

有谁可以帮忙吗?


我不知道具体是什么问题...

嗯,问题的根源几乎可以通过错误消息来描述。 Spark SQL 不支持 Joda-TimeDateTime作为输入。日期字段的有效输入是java.sql.Date (see Spark SQL 和 DataFrame 指南,数据类型供参考 http://spark.apache.org/docs/latest/sql-programming-guide.html#data-types).

最简单的解决办法就是调整StockData类所以需要java.sql.Data作为参数并替换:

val date: DateTime = formatter.parseDateTime(p(0))

像这样的东西:

val date: java.sql.Date = new java.sql.Date(
  formatter.parseDateTime(p(0)).getMillis)

or

val date: java.sql.Timestamp = new java.sql.Timestamp(
  formatter.parseDateTime(p(0)).getMillis)

如果你想保留小时/分钟。

如果您考虑使用带有 range 子句的窗口函数,更好的选择是将字符串传递给 DataFrame 并将其转换为整数时间戳:

import org.apache.spark.sql.functions.unix_timestamp

df.withColumn("ts", unix_timestamp($"date", "MM/dd/yyyy HH:mm"))

See Spark 窗口函数 - rangeBetween 日期 https://stackoverflow.com/q/33207164/1560062了解详情。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将“MM/dd/yyyy HH:mm”形式的字符串转换为 Spark 数据帧中的 joda 日期时间 的相关文章

  • 最小重复子串

    我正在看 Perl代码高尔夫页面 http www perlmonks org node id 82878 不要问为什么 并遇到了这个 第 3 洞 最小重复图案 编写一个子例程 它接受一个字符串 该字符串可能包含 重复模式 并返回最小的重复
  • Spark SQL如何读取压缩的csv文件?

    我尝试过使用apispark read csv读取带有扩展名的压缩 csv 文件bz or gzip 有效 但在源代码中我没有找到任何可以声明的选项参数codec type 即使在这个link https github com databr
  • 有没有办法捕获 Spark 中使用通配符读取的多个 parquet 文件的输入文件名?

    我使用 Spark 将多个 parquet 文件读取到单个 RDD 中 并使用标准通配符路径约定 换句话说 我正在做这样的事情 val myRdd spark read parquet s3 my bucket my folder parq
  • 如何从 SparkSQL DataFrame 中的 MapType 列获取键和值

    我的镶木地板文件中有数据 该文件有 2 个字段 object id String and alpha Map lt gt 它被读入 SparkSQL 中的数据帧 其架构如下所示 scala gt alphaDF printSchema ro
  • 为什么 Spark 没有使用本地计算机上的所有核心

    当我在 Spark Shell 中或作为作业运行一些 Apache Spark 示例时 我无法在单台计算机上实现完全的核心利用率 例如 var textColumn sc textFile home someuser largefile t
  • 为什么《Scala 中的函数式编程》一书的“无异常处理错误”一章中没有提到“scala.util.Try”?

    在 Scala 中的函数式编程 一书中的 无异常处理错误 一章中 作者给出 从函数体抛出异常的问题 Use Option如果我们不关心实际的异常 Use Either如果我们关心实际的异常 But scala util Try没有提到 从我
  • 为什么 Spark 比 Hadoop MapReduce 更快

    有人可以使用字数统计示例解释一下为什么 Spark 比 MapReduce 更快吗 bafna的答案提供了故事的记忆方面 但我想补充另外两个重要事实 DAG和生态系统 Spark 使用 惰性求值 来形成连续计算阶段的有向无环图 DAG 通过
  • Scala:如何在超类上实现克隆方法,并在子类中使用它?

    我可能会以错误的方式处理这个问题 但我想要一个像这样的对象 class MyDataStructure def myClone val clone new MyDataStructure do stuff to make clone the
  • 在 SQL Server 中处理日期

    我正在开发一个 ASP NET 网站 我从网页获取日期 然后根据用户输入我想从 SQL Server 数据库获取结果 使用存储过程 问题是我只能从用户界面获取这种格式的日期2016 10 08这是字符串类型 但在数据库中 我有一个类型为da
  • 如何在Spark结构化流中指定批处理间隔?

    我正在使用 Spark 结构化流并遇到问题 在 StreamingContext DStreams 中 我们可以定义批处理间隔 如下所示 from pyspark streaming import StreamingContext ssc
  • 缓存 Slick DBIO 操作

    我正在尝试加快 SELECT FROM WHERE name 的速度Play 中的查询类型 Scala 应用程序 我正在使用 Play 2 4 Scala 2 11 play slick 1 1 1 包 该软件包使用Slick 3 1版本
  • 对 Scala Not Null 特征的库支持

    Notice 从 Scala 2 11 开始 NotNull已弃用 据我了解 如果您希望引用类型不可为空 则必须混合魔法NotNull特征 编译器会自动阻止你输入null 可以值在里面 看到这个邮件列表线程 http www nabble
  • 使用 scala 集合 - CanBuildFrom 麻烦

    我正在尝试编写一个接受任何类型集合的方法CC 并将其映射到一个新的集合 相同的集合类型但不同的元素类型 我正在挣扎 基本上我正在尝试实施map but 不在集合本身上 问题 我正在尝试实现一个带有签名的方法 它看起来有点像 def map
  • 类型级编程有哪些示例? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我不明白 类型级编程 是什么意思 也无法使用Google找到合适的解释 有人可以提供一个演示类型级编程的示例吗 范式的解释和 或定义将
  • Python - 按月对日期进行分组

    这是一个简单的问题 起初我认为很简单而忽略了它 一个小时过去了 我不太确定 所以 我有一个Python列表datetime对象 我想用图表来表示它们 x 值是年份和月份 y 值是此列表中本月发生的日期对象的数量 也许一个例子可以更好地证明这
  • 删除 DateTime.ParseExact 的时区

    我正在尝试将字符串解析为具有以下格式的日期时间 日 日期 月 年 时间 上午 下午 时区 示例 美国东部时间 2011 年 12 月 1 日星期四晚上 8 30 我已经使用 DateTime ParseExact 和格式 dddd dd M
  • 懒惰背景下的变革与行动

    正如 Learning Spark 闪电般快速的大数据分析 一书中提到的 由于 Spark 计算 RDD 的方式不同 转换和操作也有所不同 在对惰性进行一些解释之后 我发现转换和操作都是惰性地进行的 那么问题来了 这句话的意思是什么 对比
  • 使用 scala 在 Flink 中进行实时流预测

    弗林克版本 1 2 0斯卡拉版本 2 11 8 我想使用 DataStream 来使用 scala 中的 flink 模型进行预测 我在使用 scala 的 flink 中有一个 DataStream String 其中包含来自 kafka
  • AWS EMR Spark Python 日志记录

    我正在 AWS EMR 上运行一个非常简单的 Spark 作业 但似乎无法从我的脚本中获取任何日志输出 我尝试过打印到 stderr from pyspark import SparkContext import sys if name m
  • 在 Scala 中,使用“_”和使用命名标识符有什么区别?

    为什么当我尝试使用时会出现错误 而不是使用命名标识符 scala gt res0 res25 List Int List 1 2 3 4 5 scala gt res0 map gt item toString

随机推荐

  • 添加到类内的列表

    我有这门课 public class User private string name public string UserName get set public List
  • 我可以在没有 Visual Studio 的情况下使用 Visual C++ 编译器吗? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有什么方法可以从命令行使用 Visual C 或 Visual C 编译器而无需安装 Visual Studio 我以前也试过 没找到 寻
  • MongoDB 和 C# Find()

    我有下面的代码 我是 mongodb 的新手 我需要帮助来查找集合中的特定元素 using MongoDB Bson using MongoDB Driver namespace mongo console public class Use
  • 是否可以通过 Elasticsearch 中的映射来更新索引中的现有字段?

    我已经创建了一个索引 它包含我的数据MySQL数据库 我有几个字段string在我的表中 我需要它们作为不同的类型 integer double in Elasticsearch 所以我知道我可以通过mapping如下 mappings m
  • UITableViewController 和 UITextField 键盘

    我有一个带有分组静态 UITableView 的 UITableViewController 我正在故事板上定义静态表视图的单元格 其中一个单元格中有一个文本字段 当调用此文本字段时 键盘会弹出 但是 表视图不会像表视图控制器上通常那样自动
  • 泛型类型不相等

    下面的代码段打印出 类型不相同 为什么 我知道使用interfaceOnMyType GetGenericTypeDefinition 可以解决问题 但为什么我必须这样做呢 class Program static void Main st
  • :active 时的样式按钮与 :hover 不同

    我想制作一个按钮 在悬停时显示背景颜色 在按钮按下时显示没有背景颜色的按钮颜色 这是我当前的代码 windowButton hover background color 1a82b8 windowButton active windowCl
  • 如何在 Cypress 中点击 x 次

    我的网站上有一个对象列表 所有对象旁边都有 添加 按钮 单击第一个 添加 按钮时 将添加该对象 并且该行消失并被下一个对象取代 对象名称相同 在保存之前 我想 click 三次以添加列表中的前三个对象 我怎样才能做到这一点 我知道 clic
  • 带有页眉和页脚的 uiwebview

    我正在尝试添加页眉和页脚 它们都是UIViews 但由于某种原因我的页脚粘在底部 我正在使用KVO查看我的内容大小的方法 我在这里介绍我认为问题所在的方法 void updateLayout Update the frame of the
  • 如何在aws lambda中添加mecab库

    我正在尝试将 mecab 库添加到 aws lambda 层 但它不起作用 我想要的是标记日语和韩语 标记化就足够了 这就是我所做的 我参考了这个网站 https towardsdatascience com how to install
  • 使用字符串输入引用模型

    假设我希望创建一个可以使用 type string 和 id int 查询所需对象的页面 query type people id 1 会来接我 人物查找 1 whereas 查询 类型 城市 id 123 会来接我 城市查找 123 但是
  • MPI 是否提供预处理器宏?

    MPI 标准是否提供了预处理器宏 因此如果我的 C C 代码由支持 MPI 的编译器编译 它可以分支吗 就像是 OPENMPOpenMP 的宏 根据MPI标准 http www mpi forum org docs mpi 3 0 mpi3
  • 如何让 Mathematica 内核暂停以创建外部文件

    是否可以在计算期间暂停 Mathematica 内核 这是一个例子 Module Mathematica code Calls an external program with some argument Needs to wait for
  • C++ 从函数指针数组调用函数

    我使用存储在数组中的函数指针 并使用 typedef 定义指针 但我对如何调用该函数有点迷失 这是 Menu h 部分 typedef void Menu FunctionPointer FunctionPointer m funcPoin
  • 如何在本机 Android 应用程序开发中使用 OpenStreetMap [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 您好 我的 Android 手机中有默认的 Android 虚拟内容 本机应用程序构建 现在我需要使用
  • Spark 中广播对象的最大大小是多少?

    使用数据框时播送 http spark apache org docs 2 0 0 api java org apache spark sql functions html broadcast org apache spark sql Da
  • 如何在vim的ex模式下从缓冲区粘贴?

    我在从文件复制某些文本然后将其复制到新的拆分窗口时遇到问题 3yy 新 p 在命令模式下它的工作 当我按下时 复制后分割窗口中的 p 它的工作 我理解您想要 拉出当前缓冲区中的当前行和下面的两行 在新的水平分割中打开一个空缓冲区并 将这三行
  • 使用“boot”包进行引导的 GPU 计算

    我想使用引导程序进行大型分析 我发现使用并行计算提高了引导速度 如以下代码所示 并行计算 detect number of cpu library parallel detectCores library boot boot functio
  • JavaFX 任务线程未终止

    我正在编写一个 JavaFX 应用程序 我的对象扩展了 Task 以提供远离 JavaFX GUI 线程的并发性 我的主要课程如下所示 public class MainApp extends Application Override pu
  • 将“MM/dd/yyyy HH:mm”形式的字符串转换为 Spark 数据帧中的 joda 日期时间

    我正在读取 csv 文件 其中一列中有一个应转换为日期时间的字符串 该字符串的形式为MM dd yyyy HH mm 但是 当我尝试使用 joda time 对其进行转换时 我总是收到错误 线程 main 中的异常 java lang Un