Spark.sql在pyspark中与Google BigQuery的使用



我正在将Hadoop火花作业迁移到GCP。

我被阻止使用spark.sql迁移语句以访问bigQuery表。因为它不能处理sql查询,并给出未找到的表/视图错误。

例如:df=spark.sql("select a.* from tableA a left join tableB b where a.id=b.id")

我知道spark.read.format('bigquery').option('table', 'project.database.table').load()以将bigquery表加载到数据帧。但对于read语句,我需要创建多个数据帧,然后加入。

我觉得在pyspark中使用spark.sql很简单。

你能告诉我用spark.sql如何处理sql查询吗?或者建议最好的方法在没有"火花"的情况下进行。阅读。

您可以将查询传递给dbtable选项,如下所示

src_query = "(select a.* from tableA a left join tableB b where a.id=b.id)"
df = spark.read 
.format("bigquery") 
.option("url", "{}".format(src_host)) 
.option("dbtable", "{}".format(src_query)) 
.option("user", "{}".format(src_username)) 
.option("password", "{}".format(src_password)) 
.load()

最新更新