如何使用python在Spark中执行.sql文件

ygu*_*guw 7 python apache-spark apache-spark-sql pyspark

from pyspark import SparkConf, SparkContext
from pyspark.sql import SQLContext

conf = SparkConf().setAppName("Test").set("spark.driver.memory", "1g")
sc = SparkContext(conf = conf)

sqlContext = SQLContext(sc)

results = sqlContext.sql("/home/ubuntu/workload/queryXX.sql")
Run Code Online (Sandbox Code Playgroud)

当我使用以下命令执行此命令时:python test.py它给了我一个error

y4j.protocol.Py4JJavaError:调用o20.sql时发生错误。:java.lang.RuntimeException:[1.1]错误:预期“有”但找到了“ /”

/home/ubuntu/workload/queryXX.sql

at scala.sys.package$.error(package.scala:27)
Run Code Online (Sandbox Code Playgroud)

我对Spark非常陌生,在这里我需要帮助以继续前进。

zer*_*323 6

SqlContext.sql需要有效的SQL查询而不是文件的路径。尝试这个:

with open("/home/ubuntu/workload/queryXX.sql") as fr:
   query = fr.read()
results = sqlContext.sql(query)
Run Code Online (Sandbox Code Playgroud)


Woo*_*per 0

我不确定它会回答你的问题。但如果您打算对现有表运行查询,则可以使用,

spark-sql -i <Filename_with abs path/.sql>
Run Code Online (Sandbox Code Playgroud)

另一件事,如果您有 pyspark 脚本,您可以在此处使用 Spark-submit 详细信息。