簡體   English   中英

如何使用python在spark中執行.sql文件

[英]How to execute .sql file in spark using python

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")

當我使用: python test.py執行此命令時,它給出了一個error

y4j.protocol.Py4JJavaError:調用o20.sql時發生錯誤。 :java.lang.RuntimeException:[1.1]失敗:``with''預期但找到`/'

/home/ubuntu/workload/queryXX.sql

at scala.sys.package$.error(package.scala:27)

我對Spark很新,我需要幫助才能繼續前進。

SqlContext.sql期望有效的SQL查詢不是文件的路徑。 試試這個:

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

運行spark-sql --help會給你

CLI options:
 -d,--define <key=value>          Variable subsitution to apply to hive
                                  commands. e.g. -d A=B or --define A=B
    --database <databasename>     Specify the database to use
 -e <quoted-query-string>         SQL from command line
 -f <filename>                    SQL from files
 -H,--help                        Print help information
    --hiveconf <property=value>   Use value for given property
    --hivevar <key=value>         Variable subsitution to apply to hive
                                  commands. e.g. --hivevar A=B
 -i <filename>                    Initialization SQL file
 -S,--silent                      Silent mode in interactive shell
 -v,--verbose                     Verbose mode (echo executed SQL to the
                                  console)

所以你可以像這樣執行你的sql腳本:

spark-sql -f <your-script>.sql

我不確定它會回答你的問題。 但是,如果您打算在現有表上運行查詢,則可以使用,

spark-sql -i <Filename_with abs path/.sql>

還有一件事,如果你有pyspark腳本,你可以在這里使用spark-submit細節。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM