如何查询存储到JavaRDD <java.class>?</java.class>中的数据

时间:2014-04-23 21:57:48

标签: java bigdata apache-spark

我编写了一个名为Person.java的简单java类来创建Person Object。

e.g:

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

我假设铸造问题?如何将其转换为人类可读?

1 个答案:

答案 0 :(得分:1)

在尝试使用像Spark这样的复杂库之前,我建议学习一些Java。 Person@3f03a49不是强制转换的问题,默认情况下,类Person的对象如何转换为String。你只需要定义

@Override
public String toString() {
    return "Person(" + name + ")";
}

Person课程内。

  

如何获取存储的数据?

使用任何actionsfirstcollect等。但请注意,默认情况下,Spark不会存储数据,而是&#39; s在运行中计算。