问题标签 [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.
apache-spark - 如何将行映射到 protobuf 生成的类?
我需要编写一个读取 DataSet[Row] 并将其转换为 DataSet[CustomClass] 的作业,其中 CustomClass 是一个 protobuf 类。
但是,看起来 Protobuf 类并不是真正的 Java Bean,我确实在以下方面获得了 NPE
如何确保作业可以发出 DataSet[CustomClass] 类型的数据集,其中 CustomClass 是 protobuf 类。有关为该类编写自定义编码器的任何指针/示例?
NPE:
Bean 编码器内部使用
如果我尝试在我的自定义编码器中做同样的事情,我会收到一条更具描述性的错误消息:
scala - 在范围内找不到火花隐式编码器
我在spark custom kryo 编码器中已经概述了 spark 的问题,它没有为 UDF 提供架构,但现在创建了一个最小的示例: https ://gist.github.com/geoHeil/dc9cfb8eca5c06fca01fc9fc03431b2f
在这里,即使createDataSet
语句失败,因为
为什么编码器不在范围内或至少不在正确范围内?
此外,尝试指定一个显式编码器,如:
不起作用。
scala - Apache Spark 2.1:java.lang.UnsupportedOperationException:找不到 scala.collection.immutable.Set[String] 的编码器
我将 Spark 2.1.1 与 Scala 2.11.6 一起使用。我收到以下错误。我没有使用任何案例类。
以下代码部分是堆栈跟踪指向的位置。
apache-spark - Scala 集合的数据集编码器
尝试从 s3 读取数据集时出现异常。公司案例类包含带有员工案例类的集合。
我试过kryo:
但它也不起作用。您知道如何将 scala 集合转换为数据集吗?
代码:
scala - 为什么使用 LinearRegressionModel 创建数据集会失败并显示“No Encoder found for org.apache.spark.ml.regression.LinearRegressionModel”?
我得到一个 DataFrame contians Tuple(String, org.apache.spark.ml.regression.LinearRegressionModel)
:
当我使用foreach
函数时,我得到这个错误。
我应该自己写一个编码器吗?
scala - 通用 T 作为 Spark Dataset[T] 构造函数
在以下代码段中,该tryParquet
函数尝试从 Parquet 文件中加载数据集(如果存在)。如果不是,它会计算、保存并返回提供的数据集计划:
但是,这会在以下位置产生编译错误df.as[T]
:
找不到存储在数据集中的类型的编码器。通过导入 spark.implicits._ 支持原始类型(Int、String 等)和产品类型(案例类)
未来版本中将添加对序列化其他类型的支持。
案例成功(df)=> df.as[T]
tryParquet
可以通过强制转换df
返回一个无类型DataFrame
并让调用者强制转换为所需的构造函数来规避这个问题。但是,如果我们希望类型由函数内部管理,有什么解决方案吗?
scala - 如何创建地图数据集?
我正在使用 Spark 2.2,在尝试spark.createDataset
调用Seq
.Map
我的 Spark Shell 会话的代码和输出如下:
我试过import spark.implicits._
了,虽然我相当肯定这是由 Spark shell 会话隐式导入的。
这是当前编码器未涵盖的情况吗?
scala - 如何实现 Functor[数据集]
我正在努力创建Functor[Dataset]
...的实例问题是,当您map
从A
到必须B
在Encoder[B]
隐式范围内时,但我不知道该怎么做。
当然,这段代码会引发编译错误,因为Encoder[B]
它不可用但我不能添加Encoder[B]
为隐式参数,因为它会改变 map 方法签名,我该如何解决这个问题?
scala - 如何为 scala Iterable、spark 数据集制作编码器
我正在尝试从 RDD 创建数据集y
Pattern: y: RDD[(MyObj1, scala.Iterable[MyObj2])]
所以我创建了明确的编码器 :
当我编译这段代码时,我没有错误,但是当我尝试运行它时,我得到了这个错误:
对我的对象(MyObj1 和 MyObj2)的一些解释
- MyObj1 :
- MyObj2:
请提供任何帮助
scala - 如何为 Scala 集合创建编码器(以实现自定义聚合器)?
Spark 2.3.0 与 Scala 2.11。我正在Aggregator
根据此处的文档实施自定义。聚合器需要输入、缓冲区和输出 3 种类型。
我的聚合器必须对窗口中所有先前的行采取行动,所以我这样声明:
其中一个覆盖方法应该返回缓冲区类型的编码器,在这种情况下是ListBuffer
. 我找不到任何合适的编码器,org.apache.spark.sql.Encoders
也找不到任何其他编码方式,所以我不知道在这里返回什么。
我想创建一个具有单一类型属性的新案例类,ListBuffer[Foo]
并将其用作我的缓冲区类,然后Encoders.product
在其上使用,但我不确定这是否有必要,或者是否还有其他我遗漏的东西。感谢您的任何提示。