从pyspark删除bigquery表

时间:2019-06-29 09:15:21

标签: apache-spark google-bigquery

我正在研究从mongodb读取数据,解析spark中的数据并将其写入Bigquery的脚本。我有一个用例,其中基于集合,我需要更新/重新创建bigquery表。但我找不到删除bigquery表的确切api

我正在使用https://github.com/samelamin/spark-bigquery库向bigquery写入/追加数据,但是找不到足够的文档来重新创建表。还调查了Google的大数据互操作库https://github.com/GoogleCloudPlatform/bigdata-interop,但找不到确切的api。

1 个答案:

答案 0 :(得分:1)

签出代码后,应尝试使用传递到BigQueryDataFrame.scala#L35文件的WriteDisposition参数。根据其他库(PythonApache Beam),如果使用WriteTruncate option,则该操作应覆盖表的内容:“如果表已存在,则BigQuery会覆盖表数据。 “

这样的代码应该可以工作(取自Github的https://github.com/samelamin/spark-bigquery#saving-dataframe-using-pyspark):

# Load into a table or table partition
bqDF = bigquery.BigQueryDataFrame(df._jdf)
bqDF.saveAsBigQueryTable(
    "{0}:{1}.{2}".format(BQ_PROJECT_ID, DATASET_ID, TABLE_NAME),
    False, # Day paritioned when created
    0,     # Partition expired when created
    bigquery.__getattr__("package$WriteDisposition$").__getattr__("MODULE$").WRITE_TRUNCATE(),
    bigquery.__getattr__("package$CreateDisposition$").__getattr__("MODULE$").CREATE_IF_NEEDED(),
)

让我们知道它是否有帮助。