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

    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);


函数createDataFrame不接受参数zipIndex(TextId是具有2个属性的类:字符串文本和int docId)。

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

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


如果有什么解决办法。请帮我解决。谢谢

最佳答案

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

10-07 14:13