Spark:不支持的文字类型类 scala.collection.immutable.Nil$ List()

2024-01-06

我搜索了与这个问题相关的其他答案,但没有帮助。

我正在尝试向数据框中添加一列。该列的数据类型为Seq[CaseClass]。起初我认为 Spark 可能不支持集合类型列,但事实并非如此。

这是我尝试运行的代码示例。我只想向每一行添加一个空的 Seq[CaseClass],以便稍后追加。

case class Employee(name: String)
val emptyEmployees: Seq[Employee] = Seq()
df.withColumn("Employees", lit(emptyEmployees))

但后来我发现这个错误被抛出withColumn

Unsupported literal type class scala.collection.immutable.Nil$ List()
java.lang.RuntimeException: Unsupported literal type classscala.collection.immutable.Nil$ List()

如果您使用的是spark 2.2+,那么只需更改lit() to typedLit(), 根据this https://stackoverflow.com/a/35420501/2639647 answer.

case class Employee(name: String)
val emptyEmployees: Seq[Employee] = Seq()
val df = spark.createDataset(Seq("foo")).toDF("foo")
df.withColumn("Employees", typedLit(emptyEmployees)).show()

向我们展示:

+---+---------+
|foo|Employees|
+---+---------+
|foo|       []|
+---+---------+

Update

对于 2.1,上面该版本的链接答案通过转换您的lit(Array)进入一个array() of lit()s (使用一些神奇的 scala 语法)。在你的情况下,这会起作用,因为数组是空的。

def asLitArray[T](xs: Seq[T]) = array(xs map lit: _*)

case class Employee(name: String)

val emptyEmployees: Seq[Employee] = Seq()
val df = spark.createDataset(Seq("foo")).toDF("foo")

df.withColumn("Employees", asLitArray(emptyEmployees)).show()

其结果相同:

+---+---------+
|foo|Employees|
+---+---------+
|foo|       []|
+---+---------+

真正拥有一些东西在你的Seq需要稍微不同的功能。

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

Spark:不支持的文字类型类 scala.collection.immutable.Nil$ List() 的相关文章

随机推荐

  • 检查页面是父页面还是子页面?

    是否可以检查页面是父页面还是子页面 我的页面设置如下 家长 子页1 子页2 etc 如果它是父页面 我想显示某个菜单 如果它在子页面上 我想显示不同的菜单 我知道我可以做类似下面的事情 但我想让它更加动态 而不包含特定的页面 ID 您可以测
  • “kotlin-noarg”插件在 Realm 中不起作用

    kotlin allopen 插件可以工作 但 kotlin noarg 插件不起作用 我能怎么做 下面是代码 构建 gradle buildscript ext kotlin version 1 1 3 2 repositories go
  • cin 首次使用函数后不允许输入

    对于 C 或任何类型的编程来说都是全新的 我正在尝试进行简单的输入 输出 但是在回答第一个问题后 我没有机会输入第二个输入 我尝试过在网上查找内容 但考虑到这是一个非常简单的代码 据说哈哈 没有人遇到过同样的问题 这让我来到这里 inclu
  • 生产中的高超音速休眠?

    开发商高超音速 http hsqldb org 承诺提高绩效 但我担心使用 hsqlDB 的管理和其他方面会出现问题 有人在生产中使用这个吗 这是个好主意吗 许多公司 http hsqldb org web hsqlUsing html在生
  • 如何评估 WHERE 子句中的输入

    我正在我的一个变量中输入一个输入 基本上我想做一些类似的事情 SELECT FROM PEOPLE WHERE IF INPUT 1 ITEMID 16 OR ITEMID 13 ELSE IF INPUT 2 ITEMID 11 OR I
  • Java SFTP (apache vfs2) - 密码带有@

    我正在尝试使用 org apache commons vfs2 通过 SFTP 下载文件 问题是 密码包含 字符 因此这会导致 URI 被错误解析 org apache commons vfs2 FileSystemException Ex
  • 有没有办法只限制mysql中的较低范围?

    我想获取查询中除第一行之外的所有行 我怎样才能做到这一点 您可以使用大量行 偏移量为1 LIMIT 1 18446744073709551615
  • 为什么 JSON 列不能是唯一键?

    我有一个表 里面有一个名为ColumnName该列的数据类型是JSON 我正在努力让它成为unique key 但这是不可能的 我收到了这条消息 3152 JSON 列 columnName 不能在键规范中使用 我想了解为什么我不能将该列设
  • 在 SQL Server 中从 base64 字符串转换为 varbinary(max)

    我的表中以二进制形式存储了 PDF 文档 存储 PDF 字节的列是 typevarbinary max 我想要updateSQL Studio 中包含更新文档的一条记录 我尝试完成此操作的方式如下所示 UPDATE table SET fi
  • Azure 搜索是否支持拼写错误和同义词?

    我见过讨论这两个主题的线程 Azure 搜索是否处理同义词 https stackoverflow com questions 31180405 does azure search handle synonyms 搜索 API 中的模糊搜索
  • 没有简单组件的提供者

    直到 5 分钟前它才工作 这毫无意义 这是组件 import Component OnInit from angular core import Osobaa from osobaa import Osoba from osoba impo
  • RUBYLIB 环境路径

    所以目前我已将以下内容包含在我的 bashrc 文件中 export RUBYLIB home git project app helpers 我正在尝试使用具有以下规范的规范来运行 rspec require output helper
  • 在Python中读取csv文件时列出索引超出范围错误

    我有这段代码 我正在读取 csv 文件 使用NamedTemporaryFile更改 csv 文件的内容 def update localcsv ping Yes No filename file1 csv tempfile NamedTe
  • 发布 TypeScript 包时如何处理可选的对等依赖项?

    将 TypeScript 包发布到 npm 并提供接受来自一个对等依赖项或另一个对等依赖项的输入的函数时 如何定义可选的对等依赖项 import ExternalFoo from foo import ExternalBar from ba
  • 如何重写此 MySQL 查询,使其不会引发此错误:您无法在 FROM 子句中指定目标表“crawlLog”进行更新?

    我正在尝试从公司表中获取 id 但该 id 尚未出现在crawlLog 表中 然后我需要将该companyId 插入crawlLog 表中 我需要在一次调用中执行此操作 以便并行爬网程序在其他爬网程序选择了某个 url 但尚未将其插入爬网日
  • 如何在小窗口中打开“zxing条码”扫描屏?

    zxing Barcode 扫描仪在我的应用程序中成功运行 https github com journeyapps zxing android embedded https github com journeyapps zxing and
  • 如何优化elasticsearch percolator索引内存性能

    使用elasticsearch percolator索引时有没有办法提高内存性能 我为我的渗滤器创建了一个单独的索引 我有大约 1 000 000 个用户创建的已保存搜索 用于电子邮件警报 创建此渗透器索引后 我的堆使用率飙升至 100 并
  • 重新打开 gem 提供的 ActiveRecord 模型

    我正在尝试扩展 ActiveRecord 模型 Vote 那是一颗宝石 https github com peteonrails vote fu https github com peteonrails vote fu 提供给我的应用程序
  • “自动释放但没有池”是什么意思?

    我的应用程序结构如下 核心部分是用 C 编写的 并大量使用线程 我正在其上用 Objective C 开发 UI 如果我不执行线程 它工作正常 但我无法禁用 停止线程 UI 在日志中随机崩溃 我可以看到以下消息 NSAutoreleaseN
  • Spark:不支持的文字类型类 scala.collection.immutable.Nil$ List()

    我搜索了与这个问题相关的其他答案 但没有帮助 我正在尝试向数据框中添加一列 该列的数据类型为Seq CaseClass 起初我认为 Spark 可能不支持集合类型列 但事实并非如此 这是我尝试运行的代码示例 我只想向每一行添加一个空的 Se