我有一个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
我该怎么做?
我现在得到的解决方案是将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
现在,创建一个表很容易。