如何解决转义字符导致 csv 表出现问题并创建新列
我正在使用以下代码将 csv 数据从 GCS 加载到大查询。
try{
source="gs://folder/all*";
ProjectId="project";
datasetId="dataset";
tableId="table";
schema={"configuration.load.autodetect":'true'};
var tableReference = BigQuery.newTableReference();
tableReference.setProjectId(ProjectId);
tableReference.setDatasetId(datasetId);
tableReference.setTableId(tableId);
var load = BigQuery.newJobConfigurationLoad();
load.setDestinationTable(tableReference);
load.setSourceUris([source]);
load.setSourceFormat('CSV');
load.allowQuotednewlines=true;
load.setAutodetect(true);
load.setMaxBadRecords(100000);
load.setWritedisposition('WRITE_TruncATE');
var configuration = BigQuery.newJobConfiguration();
configuration.setLoad(load);
var newJob = BigQuery.newJob();
newJob.setConfiguration(configuration);
var job = BigQuery.Jobs.insert(newJob,ProjectId);
}catch(err){
Logger.log('Table upload error: %s',err);
}
代码运行并加载文件,但某些行的值包含“(\
)”,该值将值移动 1 列。这会导致向数据中添加另一列。
例如。如果设备名称是“Google ChromeBook (CS\059)”,那么它会将值拆分为“Google ChromeBook (CS\
”和“059”,它们会移动下一列。有没有办法处理这个问题?确保该值不会因为“\
”而发生变化。
所以,这发生在表格中,
桌子应该是怎样的:
这是怎么回事,
所以,基本上这就是列中以反斜杠作为值的所有行的情况。
如果我将 Max Records 设为 0,该表将不会加载,因为它会给出错误“Found 33 column(s) while expected 32.”。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。