如何在BQ中读取CSV数据时动态更改表架构?

问题描述

我有txt格式的数据,其中包含几个文件,每个文件有3列,而几个文件有4列,如何创建仅读取前3列的表?

我一直在使用BQ UI创建表,这在读取4列数据时会导致错误

EX:file1.txt

1234|sample|test
1254|sample2|test2
12324|sample3|test3

File2.txt

1234|var1|test
1254|var2|test2
12324|var3|test3

file3.txt

1234|var1|test|123242
1254|var2|test2|1321412
12324|var3|test3|1312123

我现在拥有的模式

field1 Int
field2 String
field3 String
filed4 Int

我将这些文件保存在gcs存储桶中,并且外部表指向该位置

读取表格时出错: testing-dataset-project.testing_tables.test_data,错误消息: CSV表引用了列位置3,但行始于 位置:0仅包含3列。

解决方法

您可以按照here所述使用选项Allow jagged rows

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...