2015-03-31 118 views
0

我是Spark新手,想知道是否有任何可能将Spark SQL脚本传递给进行处理。Spark SQL - SQL脚本处理

我的目标是通过jdbc和Cassandra将两个数据库中的数据导入Spark,并传递一个SQL脚本文件,而无需修改它或对其应用最少的修改。我之所以说最小的修改是因为我有很多SQL脚本(类似于存储过程的结构),我不想将它们手动转换为RDD。

主要目的是通过Spark处理数据(执行这些SQL脚本),从而充分利用其功能和速度。

回答

0

这家伙发现运行SQL脚本,只是通过在连接到数据库一个相当普遍的方式:

https://github.com/syncany/syncany/blob/15dc5344696a800061e8b363f94986e821a0b362/syncany-lib/src/main/java/org/syncany/util/SqlRunner.java

一个限制是,每个在你的SQL脚本中的语句必须被分隔用分号。它基本上只是像解析文本文件一样解析脚本,并在执行每个语句时执行。您可以修改它以利用Spark的SQLContext,而不是使用Connection。

就性能而言,它可能不会像存储过程那么快,因为您使用InputStream缩小了瓶颈。但这是一个解决方法。