我需要将参数或参数传递给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)