使用适用于 Spark 的 BigQuery 连接器时,我可以发出查询而不是指定 table 吗?

Can I issue a query rather than specify a table when using the BigQuery connector for Spark?

我使用 Use the BigQuery connector with Spark 通过 运行 Google Dataproc 上的代码从 BigQuery 中的 table 提取数据。据我所知,那里共享的代码:

conf = {
    # Input Parameters.
    'mapred.bq.project.id': project,
    'mapred.bq.gcs.bucket': bucket,
    'mapred.bq.temp.gcs.path': input_directory,
    'mapred.bq.input.project.id': 'publicdata',
    'mapred.bq.input.dataset.id': 'samples',
    'mapred.bq.input.table.id': 'shakespeare',
}

# Output Parameters.
output_dataset = 'wordcount_dataset'
output_table = 'wordcount_output'

# Load data in from BigQuery.
table_data = sc.newAPIHadoopRDD(
    'com.google.cloud.hadoop.io.bigquery.JsonTextBigQueryInputFormat',
    'org.apache.hadoop.io.LongWritable',
    'com.google.gson.JsonObject',
    conf=conf)

将整个命名的 table 复制到 input_directory 中。我需要从中提取数据的 table 包含 >500m 行,我不需要所有这些行。有没有办法改为发出查询(而不是指定 table),以便我可以从 table?

复制数据的子集

目前 BigQuery 似乎不支持任何类型的表导出 filtering/querying: https://cloud.google.com/bigquery/docs/exporting-data https://cloud.google.com/bigquery/docs/reference/rest/v2/jobs#configuration.extract