【发布时间】:2019-07-31 20:00:28
【问题描述】:
我正在使用 Scala 绑定创建一个 Spark 应用程序。但是我的一些模型(类)是用 Java 编写的。当我尝试基于 Scala 案例类创建数据集时,它工作正常,并且当我执行 show() 时所有列都可见。但是,当我基于 Java 类创建数据集时,所有列都打包在一个名为 value 的列中。
Scala 案例类示例:
case class Person(name: String, age: Int)
执行:
sqlContext.createDataset(Seq(Person("abcd", 10))).show()
输出:
name | age
abcd | 10
Java 类示例:
class Person {
public String name;
public int age;
public Person (String name, int age) {
this.name = name;
this.age = age;
}
}
执行:
sqlContext.createDataset(Seq(Person("abcd", 10))).show()
输出:
value
[01 00 63 6F 6D 2...]
难道我们不应该使用 Java 类作为 Spark Scala 应用程序的模型吗?我们如何解决这个问题?
【问题讨论】:
标签: scala apache-spark hadoop apache-spark-sql apache-spark-dataset