【发布时间】:2014-06-08 23:26:48
【问题描述】:
我编写了一个名为 Person.java 的简单 java 类来创建 Person 对象。
例如:
public Person(){
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
然后我在 Apache Spark 主驱动程序类中实现了以下代码。
JavaRDD<Person> people = ctx.textFile(logFile).map(
new Function<String, Person>() {
public Person call(String line) throws Exception {
String[] parts = line.split("\\|");
Person trans = new Person();
trans.setName(parts[0]);
return trans;
}
});
以上函数编译并运行良好但问题是我不确定如何查询人员数据集。如何获取存储的数据?
当我尝试时: people.first();
输出是: 人@3f03a49
我认为铸造的问题是什么?如何将其转换为人类可读的?
【问题讨论】:
-
为什么你认为你拥有的对象不是你想要的?您没有定义
toString(),而是说您不知道如何使用它的默认字符串表示。 -
感谢 Sean 的及时回复。在发布这篇文章之前,我尝试了 toString(),但没有任何乐趣。我肯定想要创建和使用 Person 对象,但是一旦我将数据存储到 RDD 中,就不确定如何在 RDD 中检查这些数据。我可以在“测试”对象下方查询而没有任何问题,因为它是字符串,但对于人来说不是这样。
JavaRDD<String> test = ctx.textFile(file://...) -
什么意思?您编写的所有内容都表明您完全拥有所需的 Person 对象。
-
感谢肖恩的建议。
标签: java bigdata apache-spark