我们使用 Java API 将 CSV 文件加载到 Google Big Query。有没有一种方法可以检测加载的列并自动选择适当的模式类型?
例如,如果特定列只有 float ,则 BigQuery 将该列分配为 float ,如果不是数字,则它将列分配为字符串。有没有办法做到这一点?
迂回的方法是在加载 CSV 时默认将每一列分配为字符串。
然后对每一列进行查询-
SELECT count(列名)- count(float(列名)) FROM dataset.table (假设我只对隔离具有“浮点值”的列感兴趣,我可以将其用于我的应用程序中的数学函数)
还有其他方法可以解决这个问题吗?
最佳答案
目前,BigQuery 不支持架构推断,因此正如您所建议的,您的选择是:
- 加载数据时明确提供模式。
- 使用字符串类型加载所有数据,并在查询时转换/转换。
请注意,您可以使用 allowLargeResults 功能来清理和重写您导入的数据(但请注意,您需要为查询付费,这会增加您的数据摄取成本)。
关于csv - Google-BigQuery - CSV 文件的模式解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21764265/