Scala 将数据流转换为数据帧时数据丢失
当我试图将数据流[String]转换为数据帧时,我遇到了一个问题 我的目标是将twitter流[rdd]转换为数据帧,但在我的代码(如下)中,转换不起作用,最后我只收到一个单词的数据帧 例如:大家好 我的数据框将只包含单词“hi” 这里是代码片段Scala 将数据流转换为数据帧时数据丢失,scala,apache-spark,twitter,spark-streaming,spark-dataframe,Scala,Apache Spark,Twitter,Spark Streaming,Spark Dataframe,当我试图将数据流[String]转换为数据帧时,我遇到了一个问题 我的目标是将twitter流[rdd]转换为数据帧,但在我的代码(如下)中,转换不起作用,最后我只收到一个单词的数据帧 例如:大家好 我的数据框将只包含单词“hi” 这里是代码片段 val splited_test=texts.transform(rdd => rdd.map(x=> Row.fromSeq(x.split(" ")))) splited_test.foreachRDD { rdd =>
val splited_test=texts.transform(rdd => rdd.map(x=> Row.fromSeq(x.split(" "))))
splited_test.foreachRDD { rdd =>{
val fields = new Array[StructField](1)
fields(0)=(DataTypes.createStructField("text", StringType, true))
val schema = DataTypes.createStructType(fields)
val df= sqlContext.createDataFrame(rdd, schema)
}}
仅存储第一个单词,因为您使用了x.split(“”) 您创建了一个字段 修改代码如下
val splited_test=texts.transform(rdd => rdd.map(x=> Row.fromSeq(Seq(x))))
我现在明白了,谢谢兄弟