Я установил наш ADLS на Azure Databricks. Наши файлы в ADLS разделены вертикальной чертой (|). Я пытаюсь загрузить файлы в хранилище метаданных Databricks, используя либо внешнюю таблицу (создать внешнюю таблицу) ..., либо загружать фрейм данных из смонтированных файлов. Моя проблема в том, что одно поле вызывает у меня проблемы. Поле представляет собой большую строку со встроенными трубками (|). Итак, я решил, что могу передать идентификатор в кавычках, чтобы он мог игнорировать каналы в поле.
Что-то вроде
rdd = spark.read.format("csv").option("sep","|")\
.option("header","false")\
.option("inferSchema", "true")\
.option("quotes", "~~")\
.load("/mnt...
или
CREATE EXTERNAL
TABLE IF NOT EXISTS TestCSVLoad
(
Name STRING,
Address STRING,
Desc STRING
)
PARTITIONED BY (Date STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '|'
--ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
--WITH SERDEPROPERTIES (
-- "separatorChar" = "|",
-- "quoteChar" = "~~"
--)
--this is the default serde
--ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
--WITH SERDEPROPERTIES (
-- 'field.delim' = '|',
-- 'serialization.format' = '|'
--)
, но опция кавычек предназначена только для одного символа .... моя строка имеет ~~ для начала и конца .
Любая идея, как я могу поместить эти данные в блоки данных?