我怎样才能转换RDD成DataFramein Spark Streaming,而不仅仅是Spark?
我看到了这个例子,但它需要SparkContext.
val sqlContext = new SQLContext(sc)
import sqlContext.implicits._
rdd.toDF()
Run Code Online (Sandbox Code Playgroud)
就我而言,我有StreamingContext.我应该SparkContext在里面创造foreach吗?它看起来太疯狂......那么,如何处理这个问题呢?我的最终目标(如果它可能有用)是使用保存DataFrame在Amazon S3中rdd.toDF.write.format("json").saveAsTextFile("s3://iiiii/ttttt.json");,RDD如果不将其转换为DataFrame(我知道),这是不可能的.
myDstream.foreachRDD { rdd =>
val conf = new SparkConf().setMaster("local").setAppName("My App")
val sc = new SparkContext(conf)
val sqlContext = new SQLContext(sc)
import sqlContext.implicits._
rdd.toDF()
}
Run Code Online (Sandbox Code Playgroud) 我parquet-mr从此链接克隆了存储库。我想parquet-tools按照这里的解释进行构建:
cd parquet-mr/parquet-tools/
mvn clean package -Plocal
Run Code Online (Sandbox Code Playgroud)
(我已更新pom.xml为指向的正确版本com.twitter:parquet-hadoop:jar)
这是我得到的编译错误:
[错误]编译错误:
[信息] ----------------------------------------- --------------------
[错误] / usr / local / parquet-mr-master / parquet-tools / src / main / java / org / apache / parquet /工具/命令/MergeCommand.java:[76,13]
找不到符号符号:方法appendFile(org.apache.hadoop.conf.Configuration,org.apache.hadoop.fs.Path)位置:org.apache类型的变量编写器.parquet.hadoop.ParquetFileWriter
[错误] /usr/local/parquet-mr-master/parquet-tools/src/main/java/org/apache/parquet/tools/command/MergeCommand.java:[82,29]无法查找符号符号:方法mergeMetadataFiles(java.util.List,org.apache.hadoop.conf.Configuration)位置:类org.apache.parquet.hadoop.ParquetFileWriter