我正在尝试创建一个自定义聚合器 function 作为结果产生 Map,但是它需要一个编码器。 正如https://spark.apache.org/docs/2.1.0/api/java/org/apache/spark/sql/Encoders.ZFC35FDC70D5FC69D2693883 ...
我正在尝试创建一个自定义聚合器 function 作为结果产生 Map,但是它需要一个编码器。 正如https://spark.apache.org/docs/2.1.0/api/java/org/apache/spark/sql/Encoders.ZFC35FDC70D5FC69D2693883 ...
在编写 java 代码时,我通常使用不可变值类型。 有时它是通过库(Immutables、AutoValue、Lombok)实现的,但主要是带有以下内容的普通 Java 类: 所有final字段 以所有字段为参数的构造函数 (鉴于当前的火花支持,此问题适用于 java 11 及以下版本) ...
这工作正常: 这也很好: 但是,我们如何实现这一点以返回类型 A 或 B? 是否有可能拥有泛型类型A和B的联合类型? 干杯。 更新1 Either是一个选项,但并不理想,因为它在处理返回的结果时需要模式匹配。 实际上,我想要这个: A <: A|B , B <: A|B ,这Eith ...
假设你有这个(编码自定义类型的解决方案是从这个线程带来的): 什么时候做ds.show ,我得到: 我知道这是因为内容被编码为内部 Spark SQL 二进制表示。 但是我怎样才能像这样显示解码的内容呢? 更新1 显示内容不是最大的问题,更重要的是在处理数据集时可能会导致问题,请考虑 ...
我是 Scala 和 Spark 的新手。 我正在尝试使用编码器从 Spark 读取文件,然后转换为 java/scala object。 使用 as 读取应用架构和编码的文件的第一步工作正常。 然后我使用该数据集/数据框执行简单的 map 操作,但如果我尝试在生成的数据集/数据框上打印模式,它不会 ...
我正在尝试将Dataframe转换为Dataset ,并且 java 类结构如下: classpublic class A { private int a; public int getA() { return a; } public voi ...
以下数据集比较测试失败并出现错误: 测试如您所见,我尝试为 (String, Long) 创建 Kryo 编码器 正在测试的 Spark 应用程序 ...
环境: spark应用程序尝试执行以下操作 1) 将输入数据转换成Dataset[GenericRecord] 2)按GenericRecord的key属性分组 3) 使用 mapGroups after group 迭代值列表并得到一些字符串格式的结果 4) 将结果输出为文本文件中 ...
我想创建一个包含 ADT 列的数据集。 基于这个问题: Encode an ADT / seal trait hierarchy into Spark DataSet column我知道,有一个用 kryo 编码的解决方案,但这并不是很有帮助。 有另一种方法可以更好地解决这个问题。 让我们定义以下 ...
我正在尝试解析 spark 2.4 中的 protobuf (protobuf3) 数据,但 ByteString 类型遇到了一些问题。 我使用 ScalaPB 库创建了案例 class 并将 jar 加载到火花 shell 中。 我也尝试为该类型创建一个隐式编码器,但是我仍然收到以下错误; jav ...
我正在尝试实现一个返回复杂类型的类型化 UDAF。 不知怎的,星火不能推断结果列的类型,并使其binary把序列化的数据在那里。 这是一个重现问题的最小示例 它打印 ...
尝试执行扩展W的类以具有返回WR子类的数据集的方法get的方法。 编译错误: 如果我将get函数更改为以下内容: 和 它可以编译-因此我怀疑由于继承/类型层次结构而引起的问题。 ...
有没有办法在创建数据集时使用 Jackson 注释重命名数据集中的列名? 我的编码器类如下: 我的目标是根据@JsonProperty 重命名列,以便我可以重新使用相同的类和 json 功能。 请找到模块的相关版本: - Spark : 2.4.0 (with scala 2.11) - j ...
我正在使用 Spark 2.4 并参考https://spark.apache.org/docs/latest/rdd-programming-guide.html#rdd-persistence 豆类: public class EmployeeBean implements Serializa ...
我有两个数据集: Dataset[User]和Dataset[Book] ,其中User和Book都是案例类。 我像这样加入他们: val joinDS = ds1.join(ds2, "userid") 如果我尝试map joinDS每个元素,则编译器会抱怨缺少编码器: no ...
使用Scala 2.11的Spark 2.3.0。 我正在根据此处的文档实现自定义Aggregator 。 聚合器需要3种类型的输入,缓冲区和输出。 我的聚合器必须对窗口中的所有先前行进行操作,因此我这样声明: 一种重写方法应该返回用于缓冲区类型的编码器,在这种情况下为List ...
我试图创建一个从RDD数据集y Pattern: y: RDD[(MyObj1, scala.Iterable[MyObj2])] 所以我明确创建了编码器 : 当我编译此代码时,我没有错误,但是当我尝试运行它时,出现此错误: 我的对象的一些说明(MyObj1和MyOb ...
我正在努力如何创建Functor[Dataset]的实例...问题是当你从A map到B , Encoder[B]必须在隐式范围内,但我不知道该怎么做。 当然这个代码抛出了一个编译错误,因为Encoder[B]不可用但我不能将Encoder[B]添加为隐式参数,因为它会改变map方法签名 ...
我正在使用 Spark 2.2 并且在尝试在Map的Seq上调用spark.createDataset时遇到了麻烦。 我的 Spark Shell 会话的代码和输出如下: 我试过import spark.implicits._ ,但我相当确定它是由 Spark shell 会话隐式导入的。 ...
在下面的代码片段中, tryParquet函数尝试从Parquet文件加载数据集(如果存在)。 如果没有,它会计算,持久并返回提供的数据集计划: 但是这会在df.as[T]上产生编译错误: 无法找到存储在数据集中的类型的编码器。 导入spark.implicits._支持原 ...