我们将MS SQL服务器作为各种数据库的主要选项,并且我们定期运行数百个存储过程。 现在我们正在转向完全大数据堆栈。我们正在将 Spark 用于批处理作业。但是,我们已经投入了巨大的精力来创建这些存储过程。有没有办法在 Spark 之上重用存储过程?或者有没有一种简单的方法将它们迁移到 Spark 而不是从头开始编写?
或者任何像Cloudera distribution/impala这样的框架都可以满足这个要求?
不,据我所知。你可能能够使用非常相似的逻辑流,但你将需要投入大量的时间和精力将 T-SQL 转换为 Spark。我建议直接使用Scala,不要浪费时间使用Python/PySpark。
我转换的经验法则是尝试在存储过程中执行任何SQL操作,如Spark(sqlContext.sql("SELECT x FROM y")
)中的SQL,但请注意Spark数据帧是不可变的,因此必须更改任何UPDATE
或DELETE
操作才能输出新的修改数据帧。