如何将参数或参数传递给Spark SQL

时间:2020-08-27 14:55:57

标签: pyspark apache-spark-sql

我需要将参数或参数传递给spark sql,在cr_table_using_spark.sql中,我想将db_schema作为参数传递,我可以使用--hivevar完成此配置单元

beeline --hivevar db_schema=${db_schema} -f cr_table_schema.sql

如何在Spark sql中执行相同的操作,以将 db_schema 变量传递给cr_table_using_spark.sql脚本

spark-sql -i cr_table_using_spark.sql

cat cr_table_using_spark.sql ,这是脚本的设置方式。

db_schema = sys.argv[1]

spark.sql('show databases').show()
spark.sql("use " + db_schema)
spark.sql('show tables').show()

createtab_new_table = '''
CREATE EXTERNAL TABLE  IF NOT EXISTS `new_table`(
`column_a` string,
`column_b` string,
`column_c` string)
PARTITIONED BY (
`year` smallint,
`month` smallint,
`day` smallint)
LOCATION '/data/'+db_schema'/new_table'
TBLPROPERTIES (
'bucketing_version'='2',
'discover.partitions'='true',
'orc.compress'='SNAPPY',
'transient_lastDdlTime'='1581014243')
'''

spark.sql(createtab_new_table)

0 个答案:

没有答案