如何为google云存储创建外部table并查询外部分区数据?
How to create an external table for a google cloud storage and query the externally partitioned data?
我正在尝试使用此 BigQuery 的引用来查询外部分区数据 doc
Google 云存储:(csv 数据仅包含字符串值)
gs://project/myfolder/count=1000/file_1k.csv
gs://project/myfolder/count=10000/file_10k.csv
gs://project/myfolder/count=100000/file_100k.csv
源 URI 前缀: gs://project/myfolder
但是我在查询 table、
时收到以下错误
Error while reading table: project.dataset.partition_table,
error message: Cannot query hive partitioned data for table project.dataset.partition_table without any associated files.
查询:
SELECT * FROM `project.dataset.partition_table` where count=1000 order by rand() LIMIT 100;
参考截图,
非常感谢这里的任何输入。
问题是引擎找不到与分区相关的文件。
在您的情况下,这是因为当您创建 table 时,您引用了 GCS
中的一个文件夹,而不是它的文件。
要解决您的问题,您应该使用通配符,您的路径将是 gs://project/myfolder/*
而不是 gs://project/myfolder
希望对你有帮助
我正在尝试使用此 BigQuery 的引用来查询外部分区数据 doc
Google 云存储:(csv 数据仅包含字符串值)
gs://project/myfolder/count=1000/file_1k.csv
gs://project/myfolder/count=10000/file_10k.csv
gs://project/myfolder/count=100000/file_100k.csv
源 URI 前缀: gs://project/myfolder
但是我在查询 table、
时收到以下错误Error while reading table: project.dataset.partition_table,
error message: Cannot query hive partitioned data for table project.dataset.partition_table without any associated files.
查询:
SELECT * FROM `project.dataset.partition_table` where count=1000 order by rand() LIMIT 100;
参考截图,
非常感谢这里的任何输入。
问题是引擎找不到与分区相关的文件。
在您的情况下,这是因为当您创建 table 时,您引用了 GCS
中的一个文件夹,而不是它的文件。
要解决您的问题,您应该使用通配符,您的路径将是 gs://project/myfolder/*
而不是 gs://project/myfolder
希望对你有帮助