使用 pyspark 处理 csv 文件中字段内的逗号

sam*_*mmy 5 csv apache-spark pyspark

我有一个 csv 数据文件,在列值中包含逗号。例如,

value_1,value_2,value_3  
AAA_A,BBB,B,CCC_C  
Run Code Online (Sandbox Code Playgroud)

这里,值是“AAA_A”、“BBB、B”、“CCC_C”。但是,当试图用逗号分割行时,它给了我 4 个值,即“AAA_A”、“BBB”、“B”、“CCC_C”。

在 PySpark 中用逗号分割行后如何获得正确的值?

Dan*_*lVL 5

使用 databriks 中的 spark-csv 类。

默认情况下,引号之间的分隔符 (") 将被忽略。

例子:

val df = sqlContext.read
    .format("com.databricks.spark.csv")
    .option("header", "true") // Use first line of all files as header
    .option("inferSchema", "true") // Automatically infer data types
    .load("cars.csv")
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请查看https://github.com/databricks/spark-csv

如果您的引号是 (') 实例 ("),则可以使用此类进行配置。

编辑:

对于python API:

df = sqlContext.read.format('com.databricks.spark.csv').options(header='true', inferschema='true').load('cars.csv')
Run Code Online (Sandbox Code Playgroud)

此致。