用Java编写Apache Spark中的JavaPairRDD到DataFrame

时间:2015-10-18 17:25:02

标签: java apache-spark spark-dataframe

我有一些文档文件,我尝试读取数据然后使用zipWithIndex()函数压缩索引:

    JavaRDD<String> rawTextRDD = sc.textFile("demo.txt");
    JavaPairRDD<String, Long> zipIndex = rawTextRDD.zipWithIndex();

在zipIndex的值是包含键值对的JavaPairRDD之后,看起来像[“这是漂亮的图片”,0],[“这是另一张图片”,1]。

但是现在,我想使用以下命令将zipIndex转换为DataFrame:

DataFrame docDF = sqlContext.createDataFrame(zipIndex, TextId.class);

function createDataFrame不接受参数zipIndex(TextId是一个具有2个属性的类:String text和int docId)。

我在Scala中也有一个代码,它运行得很好。请参考:

val rawTextRDD = sc.textFile("demo.txt")
val docDF = rawTextRDD.zipWithIndex.toDF("text", "docId")

如果有任何解决方案。请帮我解决。感谢

1 个答案:

答案 0 :(得分:-1)

试试这个:DataFrame docDF = sqlContext.createDataFrame(zipIndex.values(),TextId.class);