JavaPairRDD到Apache Spark中的数据帧
我有一些文档文件,我尝试读取数据,然后使用zipWithIndex()函数压缩索引,如下所示:JavaPairRDD到Apache Spark中的数据帧,java,apache-spark,spark-dataframe,Java,Apache Spark,Spark Dataframe,我有一些文档文件,我尝试读取数据,然后使用zipWithIndex()函数压缩索引,如下所示: JavaRDD<String> rawTextRDD = sc.textFile("demo.txt"); JavaPairRDD<String, Long> zipIndex = rawTextRDD.zipWithIndex(); 函数createDataFrame不接受参数zipIndex(TextId是一个具有2个属性的类:String text和in
JavaRDD<String> rawTextRDD = sc.textFile("demo.txt");
JavaPairRDD<String, Long> zipIndex = rawTextRDD.zipWithIndex();
函数createDataFrame不接受参数zipIndex(TextId是一个具有2个属性的类:String text和int docId)
我还有一个Scala代码,它运行得很好。请参阅:
val rawTextRDD = sc.textFile("demo.txt")
val docDF = rawTextRDD.zipWithIndex.toDF("text", "docId")
如果有解决办法的话。请帮我解决。谢谢,试试这个:DataFrame docDF=sqlContext.createDataFrame(zipIndex.values(),TextId.class) 您在这里试图做什么
sqlContext.createDataFrame(zipIndex,TextId.class)代码>?我看不出它有什么理由接受zipIndex
。这是一个javapairdd
而不是JavaRDD
@eliasah,我认为这是简单的类型不匹配,zipIndex
应该映射到JavaRDD
,但我懒得检查:)你怎么看?@zero323我试过检查它。JavaAPI让我从rawTextRDD中获取rdd来创建元组的rdd,这很奇怪。明天我将对此进行更多的研究。感谢zero323和@eliasah,我已经重新检查了Java API,函数createDataFrame不接受参数javaPairdd。这是我的错。非常感谢,我将尝试从javapairdd转换为JavaRDD:DIt可以很好地解释为什么这个更改可以解决这个问题。
val rawTextRDD = sc.textFile("demo.txt")
val docDF = rawTextRDD.zipWithIndex.toDF("text", "docId")