Escape Comma внутри CSV-файла с использованием спарк-оболочки - PullRequest
0 голосов
/ 27 февраля 2019

У меня есть набор данных, содержащий две строки ниже

s.no,name,Country
101,xyz,India,IN
102,abc,UnitedStates,US

Я пытаюсь экранировать запятые каждого столбца, но не для последнего столбца. Я хочу, чтобы они были такими же и получить вывод с использованием spark-shell.Я попытался использовать приведенный ниже код, но он дал мне другой вывод.

val df = sqlContext.read.format("com.databricks.spark.csv").option("header", "true").option("delimiter", ",").option("escape", "\"").load("/user/username/data.csv").show()

Вывод, который он мне дал,

+----+-----+------------+
|s.no| name|     Country|
+----+-----+------------+
| 101|  xyz|       India|
| 102|  abc|UnitedStates|
+----+-----+------------+

Но я ожидаю, что результат будет примерно нижеЯ скучаю здесь, кто-нибудь может мне помочь?

s.no name Country

101 xyz India,IN

102 abc UnitedStates,US

1 Ответ

0 голосов
/ 27 февраля 2019

Я предлагаю read все поля с предоставлением schema и игнорированием заголовка, присутствующего в данных, как показано ниже

case class Data (sno: String, name: String, country: String, country1: String)

val schema = Encoders.product[Data].schema

import spark.implicits._

val df = spark.read
  .option("header", true)
  .schema(schema)
  .csv("data.csv")
  .withColumn("Country" , concat ($"country", lit(", "), $"country1"))
  .drop("country1")

df.show(false)

Вывод:

+---+----+----------------+
|sno|name|Country         |
+---+----+----------------+
|101|xyz |India, IN       |
|102|abc |UnitedStates, US|
+---+----+----------------+

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...