Dav*_*one 4 apache-spark spark-streaming apache-spark-sql pyspark spark-dataframe
我一直面临着关于将输出Dstream插入永久 SQL表的"Spark Streaming"的问题.我想将每个输出DStream(来自激发进程的单个批处理)插入到一个唯一的表中.我一直在使用Spark与1.6版本的Spark.
在我的代码的这一部分,我有一个由一个或多个RDD组成的Dstream,我想永久地插入/存储到SQL表中,而不会丢失每个已处理批处理的任何结果.
rr = feature_and_label.join(result_zipped)\
.map(lambda x: (x[1][0][0], x[1][1]) )
Run Code Online (Sandbox Code Playgroud)
这里的每个Dstream都表示如此元组:(4.0,0).我不能使用SparkSQL,因为Spark处理'table'的方式,就像临时表一样,因此在每个批处理中都会丢失结果.
这是输出的一个例子:
(0.0,2)
(4.0,0)
(4.0,0)
...
如上所示,每批只由一个Dstream制作.正如我之前所说的,我想将这些结果永久存储到保存在某个地方的表中,并可能在以后查询它.所以我的问题是:有办法吗?
我很欣赏是否有人可以帮助我,但特别是告诉我是否可能.谢谢.
Vanilla Spark没有提供一种保存数据的方法,除非您下载了与HDFS一起打包的版本(尽管他们似乎在使用Spark 2.0中的想法).将结果存储到永久表并稍后查询这些结果的一种方法是使用Spark数据库生态系统中的各种数据库之一.每个都有利弊,您的用例很重要.我会提供一些接近主列表的东西.这些是按以下方式划分的:
| 归档时间: |
|
| 查看次数: |
1661 次 |
| 最近记录: |