scala - 使用 scala 导入的文件字段中带有换行符 (LF) 的 Spark CSV 问题

标签 scala apache-spark cassandra spark-cassandra-connector spark-csv

我正在尝试通过 scala 使用 spark csv 加载 CSV(制表符分隔)。

我观察到的是,如果一列包含换行符 LF (\n) spark 将其视为行尾,即使我们在 csv 文件中列的两边都有双引号。

有人遇到过类似的问题吗?

this is the scala code I have used

但 spark 将其识别为行尾

在@ashraful 建议后,我尝试了以下查询:

但结果保持不变这里是我尝试加载的记录

`但是在加载到 spark 数据框后,我正在尝试检查记录,但其余列在 LS 字符后加载为 null。

enter image description here

同一行被分成两行enter image description here

这是数据:注意第一行有 LF 字符结尾。

cuenta_id   fecha_creacion  saldo   descripcion saldo_inicial   fecha_ultima_actualizacion  usuario_id  saldo_anterior  saldo_reserva   tipo_cuenta pais_iso_3166   moneda_iso_4217 valor_comision_retiro   retiro_en_proceso   plan_id grupo_comision_id   documento   tipo_documento  operacion_local estado_cuenta   nombre  telefonos   fax direccion   nombre_contacto email_contacto  url ciudad  ventas_mensuales    comentarios modelo_pagos    modo_prueba tiene_fondo_reserva porcentaje_fondo_reserva    aceptar_tc_internacionales  dias_fondo_reserva  telefono_servicio_cliente   email_soporte_cliente   pagina_web_soporte_cliente  nombre_comercial    fuente_creacion procesar_sin_cvv2   productos_servicios usuario_modificacion_id sesion_modificacion_id  saldo_congelado perfil_usuario_id   grupo_perfil_cobranza_id    limite_creacion_transacciones   limite_procesamiento_transacciones  codigo_mcc_id   url_atencion_cliente    ubicacion_regional  direccion_linea2    direccion_linea3    direccion_codigo_postal grupo_perfil_cobranza_personalizado_id  logo    migrada_acreditacion    origen_comercial
"500181"    "2012-04-13 17:14:47.958"   "0.00"  "CTA POL [MARISOL GONDOLA ROMERO  PE]"  "0.00"      "500106"    "0.00"  "0.00"  "CHECK_ACCOUNT" "PE"    "PEN"   "0.00"  "f" "1" "9" "3742396"   "ID"    "f" "ENABLED"   "MARISOL GONDOLA ROMERO"    "5073984473"    ""  "CLL SALISBURY CASA 226 URBANIZACION COLINAS DEL GOLF CORREGIMIENTO DE JOSE D ESPINAR"  "ALEJANDRO JUAN COMPARADA"  "pol.no.responder@gmail.com"        "LIMA"      "VALIDAR TIPO DE DOCUMENTO Y TIPO DE CUENTA
"   "AGGREGATOR"    "f" "f"     "t"     "5073984473"    "pol.no.responder@gmail.com"                "f"     "2" "C64C7A54C942D496DCFCA2C24671FD46.admin-nodo1"  "0" "MG-PRICING_302_157077" "MG-PRICING_303_285226"         "5311"                              "f" 

输出如下:

cala> sqlcontext.read.format("com.databricks.spark.csv").option("header", "true").option("inferSchema", "true").option("delimiter", "\t").option("quote", "\"").option("charset","UTF-8").load("/home/goutham/Work/data/account.csv").show()
+--------------+--------------------+-----+--------------------+-------------+--------------------------+----------+--------------------+-------------+-------------+-------------+---------------+---------------------+-----------------+--------------------+-----------------+--------------------+--------------------+---------------+-------------+--------------------+----------+----+--------------------+--------------------+--------------------+----+------+----------------+--------------------+------------+-----------+-------------------+------------------------+--------------------------+------------------+-------------------------+---------------------+--------------------------+----------------+---------------+-----------------+-------------------+-----------------------+----------------------+---------------+-----------------+------------------------+-----------------------------+----------------------------------+-------------+--------------------+------------------+----------------+----------------+-----------------------+--------------------------------------+----+--------------------+----------------+
|     cuenta_id|      fecha_creacion|saldo|         descripcion|saldo_inicial|fecha_ultima_actualizacion|usuario_id|      saldo_anterior|saldo_reserva|  tipo_cuenta|pais_iso_3166|moneda_iso_4217|valor_comision_retiro|retiro_en_proceso|             plan_id|grupo_comision_id|           documento|      tipo_documento|operacion_local|estado_cuenta|              nombre| telefonos| fax|           direccion|     nombre_contacto|      email_contacto| url|ciudad|ventas_mensuales|         comentarios|modelo_pagos|modo_prueba|tiene_fondo_reserva|porcentaje_fondo_reserva|aceptar_tc_internacionales|dias_fondo_reserva|telefono_servicio_cliente|email_soporte_cliente|pagina_web_soporte_cliente|nombre_comercial|fuente_creacion|procesar_sin_cvv2|productos_servicios|usuario_modificacion_id|sesion_modificacion_id|saldo_congelado|perfil_usuario_id|grupo_perfil_cobranza_id|limite_creacion_transacciones|limite_procesamiento_transacciones|codigo_mcc_id|url_atencion_cliente|ubicacion_regional|direccion_linea2|direccion_linea3|direccion_codigo_postal|grupo_perfil_cobranza_personalizado_id|logo|migrada_acreditacion|origen_comercial|
+--------------+--------------------+-----+--------------------+-------------+--------------------------+----------+--------------------+-------------+-------------+-------------+---------------+---------------------+-----------------+--------------------+-----------------+--------------------+--------------------+---------------+-------------+--------------------+----------+----+--------------------+--------------------+--------------------+----+------+----------------+--------------------+------------+-----------+-------------------+------------------------+--------------------------+------------------+-------------------------+---------------------+--------------------------+----------------+---------------+-----------------+-------------------+-----------------------+----------------------+---------------+-----------------+------------------------+-----------------------------+----------------------------------+-------------+--------------------+------------------+----------------+----------------+-----------------------+--------------------------------------+----+--------------------+----------------+
|        500181|2012-04-13 17:14:...| 0.00|CTA POL [MARISOL ...|         0.00|                      null|    500106|                0.00|          0.0|CHECK_ACCOUNT|           PE|            PEN|                  0.0|                f|                   1|                9|             3742396|                  ID|              f|      ENABLED|MARISOL GONDOLA R...|5073984473|null|CLL SALISBURY CAS...|ALEJANDRO JUAN CO...|pol.no.responder@...|null|  LIMA|            null|VALIDAR TIPO DE D...|        null|       null|               null|                    null|                      null|              null|                     null|                 null|                      null|            null|           null|             null|               null|                   null|                  null|           null|             null|                    null|                         null|                              null|         null|                null|              null|            null|            null|                   null|                                  null|null|                null|            null|
|"  "AGGREGATOR"|                   f|    f|                null|            t|                      null|5073984473|pol.no.responder@...|         null|         null|         null|              f|                 null|                2|C64C7A54C942D496D...|                0|MG-PRICING_302_15...|MG-PRICING_303_28...|           null|         null|                5311|      null|null|                null|                null|                null|null|  null|               f|                null|        null|       null|               null|                    null|                      null|              null|                     null|                 null|                      null|            null|           null|             null|               null|                   null|                  null|           null|             null|                    null|                         null|                              null|         null|                null|              null|            null|            null|                   null|                                  null|null|                null|            null|
+--------------+--------------------+-----+--------------------+-------------+--------------------------+----------+--------------------+-------------+-------------+-------------+---------------+---------------------+-----------------+--------------------+-----------------+--------------------+--------------------+---------------+-------------+--------------------+----------+----+--------------------+--------------------+--------------------+----+------+----------------+--------------------+------------+-----------+-------------------+------------------------+--------------------------+------------------+-------------------------+---------------------+--------------------------+----------------+---------------+-----------------+-------------------+-----------------------+----------------------+---------------+-----------------+------------------------+-----------------------------+----------------------------------+-------------+--------------------+------------------+----------------+----------------+-----------------------+--------------------------------------+----+--------------------+----------------+

最佳答案

确定了问题。最新的 Spark 2.1.0 无法识别这一点。我使用 Spark 2.0.2 尝试过同样的工作。

谁能告诉我如何举报?

更新:大家好,我们上个月就此问题提交了 PR,现已修复。

JIRA

新更新:已确认此问题将在即将推出的 Spark 2.2.0 版本中得到修复。 GIT Issue report

关于scala - 使用 scala 导入的文件字段中带有换行符 (LF) 的 Spark CSV 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43292338/

相关文章:

scala - 使用路径相关类型参数覆盖函数

apache-spark - hadoop 2.7.7 的 AWS-Java-SDK 版本问题

apache-spark - Spark 结构化流 : multiple sinks

cassandra - Scylla/Cas​​sandra 中过期记录的 TTL 较大吗?

python - cassandra 没有主机可用 :

scala - 获取 "how can getCommonSuperclass() do its job if different class symbols get the same bytecode-level internal name"编译错误

Scala:从 map 中删除任何元素并展平

java - Spring+Hibernate+Cassandra的组合如何运行

scala - 关闭 Scala 中的循环变量

java - 在 Spark Streaming 作业中启动一次 JDBC 连接