Azure Databricks从Azure数据湖加载文件

时间:2020-05-05 20:41:40

标签: python pyspark azure-data-lake azure-databricks apache-spark-dataset

我已经将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' = '|'
--)

但是quote选项仅用于一个字符。...我的字符串的开头和结尾都有~~。

任何想法我如何将这些数据放入数据块?

0 个答案:

没有答案