如何从RDD中保存的文本文件创建Shark查询?

时间:2014-09-28 15:26:30

标签: apache-spark shark-sql apache-spark-sql

我有一个JavaPairRDD<String, String> results,我通过调用来保存它:

results.saveAsTextFile("data")

然后我得到文件内容,如:

(www.abc.com,0.15712321 www.def.com,www.aaa.com,www.ccc.com)

现在,我想使用Shark创建一个包含三个字段的表:

url STRING  | rank DOUBLE | links STRING
www.abc.com | 0.15712321  | www.def.com,www.aaa.com,www.ccc.com

我该怎么做?

1 个答案:

答案 0 :(得分:0)

我现在获得的解决方案是将JavaPairRDD<String, String>转换为JavaRDD<String>

JavaRDD<String> ret = results.map(new Function<Tuple2<String, String>, String>() {
    @Override
    public String call(Tuple2<String, String> pair) {
        return pair._1() + " " + pair._2();
    }
});
ret.saveAsTextFile("data");

然后我得到的文件如下:

www.abc.com 0.15712321 www.def.com,www.aaa.com,www.ccc.com

现在,创建表格很容易。