【发布时间】:2021-09-24 04:05:54
【问题描述】:
我目前面临将数据加载到大查询甚至创建联合表的问题,因为传入的数据由 | 管道符号分隔,文件内的字段上带有转义的双引号
示例数据(还尝试使用双双引号转义双引号值,即字段级别的"")
13|2|"\"Jeeps, Trucks & Off-Roa"|"JEEPSTRU"
创建 DDL
CREATE OR REPLACE EXTERNAL TABLE `<project>.<dataset>.<table>`
WITH PARTITION COLUMNS (
dt DATE
)
OPTIONS (
allow_jagged_rows=true,
allow_quoted_newlines=true,
format="csv",
skip_leading_rows=1,
field_delimiter="|",
uris=["gs://path/to/bucket/table/*"],
hive_partition_uri_prefix='gs://path/to/bucket/table'
)
查询
SELECT
*
FROM
`<project>.<dataset>.<table>`
WHERE field_ like '%Jeep%'
错误
Error while reading table: <project>.<dataset>.<table>, error message: Error detected while parsing row starting at position: 70908. Error: Data between close double quote (") and field separator.
但是,如果我使用选项引号空字符quote="" 创建表,它会在 SQL 查询中难以过滤
我需要将field_ 数据加载为"Jeeps, Trucks & Off-Roa
我试图找到各种文档和 StackOverflow 问题(因为一切都过时或无法正常工作 - 或者我不走运)我再次发布这个问题。
我有一个非常基本的问题 > 在不预处理 csv/psv 原始数据的情况下,在联合大查询表的列中转义双引号以避免此问题的更好方法是什么?
【问题讨论】:
标签: csv google-bigquery google-cloud-storage