问题标签 [apache-spark-encoders]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
22048 浏览

scala - 为什么使用案例类对 JSON 进行编码时出现错误“无法找到存储在数据集中的类型的编码器”?

我写过火花工作:

在 IDE 中,当我运行 main 函数时,出现 2 个错误:

但在 Spark Shell 中,我可以运行此作业而不会出现任何错误。问题是什么?

0 投票
9 回答
86372 浏览

scala - 如何在数据集中存储自定义对象?

根据介绍 Spark 数据集

由于我们对 Spark 2.0 的期待,我们计划对 Datasets 进行一些激动人心的改进,特别是: ... 自定义编码器——虽然我们目前为多种类型自动生成编码器,但我们希望为自定义对象开放一个 API。

并尝试存储自定义类型Dataset导致以下错误,例如:

找不到存储在数据集中的类型的编码器。通过导入 sqlContext.implicits 支持原始类型(Int、String 等)和产品类型(案例类)。未来版本中将添加对序列化其他类型的支持

或者:

Java.lang.UnsupportedOperationException:没有找到用于 .... 的编码器

是否有任何现有的解决方法?


请注意,此问题仅作为社区 Wiki 答案的入口点存在。随时更新/改进问题和答案。

0 投票
3 回答
22619 浏览

scala - 如何在 Spark 2.X 数据集中创建自定义编码器?

Spark 数据集从 Row's 转移到EncoderPojo's/primitives 的's。Catalyst引擎使用ExpressionEncoder转换 SQL 表达式中的列。但是,似乎没有其他子类Encoder可用作我们自己的实现的模板。

下面是一个在 Spark 1.X / DataFrames 中没有在新机制下编译的代码示例:

}

我们得到一个编译器错误

那么,不知何故/某处应该有办法

  • 定义/实现我们的自定义编码器
  • DataFrame在(现在是类型的 Dataset Row)上执行映射时应用它
  • 注册编码器以供其他自定义代码使用

我正在寻找成功执行这些步骤的代码。

0 投票
3 回答
73068 浏览

scala - 为什么在创建自定义案例类的数据集时“无法找到存储在数据集中的类型的编码器”?

Spark 2.0(最终版)和 Scala 2.11.8。以下超级简单的代码会产生编译错误Error:(17, 45) Unable to find encoder for type stored in a Dataset. Primitive types (Int, String, etc) and Product types (case classes) are supported by importing spark.implicits._ Support for serializing other types will be added in future releases.

0 投票
1 回答
6643 浏览

scala - Apache Spark 2.0:java.lang.UnsupportedOperationException:找不到 java.time.LocalDate 的编码器

我正在使用 Apache Spark 2.0 并case classDetaSet. 当我尝试根据如何在数据集中存储自定义对象来定义自定义编码器时?,因为java.time.LocalDate我得到了以下异常:

以下是代码:

我们如何为 spark 定义第三方 api 的编码器?

更新

当我为整个案例类创建编码器时,df.map..将对象映射为二进制,如下所示:

我期待 FireService 的地图,但返回地图的二进制文件。

0 投票
1 回答
3661 浏览

scala - Spark 数据集和 java.sql.Date

假设我有一个Dataset这样的 Spark:

我想创建一个Dataset只有名称和日期字段的新字段。据我所知,我可以使用ds.select()withTypedColumn或者我可以使用ds.select()withColumn然后将其转换DataFrameDataset.

但是,我无法让前一个选项与该Date类型一起使用。例如:

后一个选项有效:

有没有一种方法可以从不来回选择Date字段?DatasetDataFrame

0 投票
3 回答
29125 浏览

scala - 将 scala 列表转换为 DataFrame 或 DataSet

我是 Scala 的新手。我正在尝试将 scala 列表(在源 DataFrame 上保存一些计算数据的结果)转换为 Dataframe 或 Dataset。我没有找到任何直接的方法来做到这一点。但是,我尝试了以下过程将我的列表转换为 DataSet,但它似乎不起作用。我提供以下 3 种情况。

有人可以给我一些希望,如何进行这种转换?谢谢。

0 投票
4 回答
39758 浏览

scala - 尝试将数据帧行映射到更新行时出现编码器错误

当我试图在我的代码中做同样的事情时,如下所述

我从这里获取了上述参考: Scala: How can I replace value in Dataframs using scala 但是我收到编码器错误

找不到存储在数据集中的类型的编码器。通过导入 spark.implicits 支持原始类型(Int、S 字符串等)和产品类型(案例类)。未来版本中将添加对序列化其他类型的支持。

注意:我使用的是 spark 2.0!

0 投票
1 回答
13470 浏览

scala - Spark 错误:无法找到存储在数据集中的类型的编码器

我在 Zeppelin 笔记本上使用 Spark,而 groupByKey() 似乎不起作用。

这段代码:

给了我这个错误(可能是编译错误,因为它在我正在处理的数据集非常大时立即显示):

我尝试添加一个案例类并将我的所有行映射到其中,但仍然出现相同的错误

我的数据框的架构是:

0 投票
1 回答
5908 浏览

scala - Spark Dataset : Example : Unable to generate an encoder issue

New to spark world and trying a dataset example written in scala that I found online

On running it through SBT , i keep on getting the following error

org.apache.spark.sql.AnalysisException: Unable to generate an encoder for inner class

Any idea what am i overlooking

Also feel free to point out better way of writing the same dataset example

Thanks

Code :

JSON file ( student.json) :