【问题标题】:Ingest CSV data with Auto Loader with Specific Delimiters / separator使用带有特定分隔符/分隔符的 Auto Loader 提取 CSV 数据
【发布时间】:2021-10-13 15:11:46
【问题描述】:

我正在尝试使用复杂的分隔符(“~|~”)加载几个 csv 文件

当前代码当前加载 csv 文件,但无法识别正确的列,因为使用了分隔符 (",")。

我正在阅读这里的文档 https://docs.databricks.com/spark/latest/structured-streaming/auto-loader-csv.html,但它没有说明任何内容,或者至少我看不到它

spark.readStream.format("cloudFiles") \
  .option("cloudFiles.format", "csv") \
  # The schema location directory keeps track of your data schema over time
  .option("cloudFiles.schemaLocation", "<path-to-checkpoint>") \
  .load("<path-to-source-data>") \
  .writeStream \
  .option("mergeSchema", "true") \
  .option("checkpointLocation", "<path-to-checkpoint>") \
  .start("<path-to-target")

【问题讨论】:

    标签: apache-spark pyspark databricks azure-databricks databricks-autoloader


    【解决方案1】:

    Documentation 说:

    使用 Auto Loader,您可以提取 JSON、CSV、PARQUET、AVRO、TEXT、BINARYFILE 和 ORC 文件。有关这些文件格式的选项,请参阅 Format options

    所以你可以只使用标准的options for CSV files - 你需要delimiter(或sep)选项:

    df = spark.readStream.format("cloudFiles") \
      .option("cloudFiles.format", "csv") \
      .option("delimiter", "~|~") \
      .schema(...) \
      .load(...)
    

    【讨论】:

      猜你喜欢
      • 2021-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多