У меня есть файл TSV со многими строками.Большая часть строк работает нормально, но у меня есть проблема работы со следующей строкой:
tt7841930 tvEpisode "Stop and Hear the Cicadas/Cold-Blooded "Stop and Hear the Cicadas/Cold-Blooded 0 2018 \N 24 Animation,Family
Я использую Spark и Scala для загрузки файла в DataFrame:
val titleBasicsDf = spark.read
.format("org.apache.spark.csv")
.option("header", true)
.option("inferSchema", true)
.option("delimiter", " ")
.csv("title.basics.tsv.gz")
В результате я получаю:
+---------+---------+-------------------------------------------------------------------------------+-------------+-------+---------+-------+----------------+------+-------------+--------+------------+------------+-------------+
|tconst |titleType|primaryTitle |originalTitle|isAdult|startYear|endYear|runtimeMinutes |genres|averageRating|numVotes|parentTconst|seasonNumber|episodeNumber|
+---------+---------+-------------------------------------------------------------------------------+-------------+-------+---------+-------+----------------+------+-------------+--------+------------+------------+-------------+
|tt7841930|tvEpisode|"Stop and Hear the Cicadas/Cold-Blooded "Stop and Hear the Cicadas/Cold-Blooded|0 |2018 |\N |24 |Animation,Family|null |null |null |tt4947580 |6 |2 |
+---------+---------+-------------------------------------------------------------------------------+-------------+-------+---------+-------+----------------+------+-------------+--------+------------+------------+-------------+
Итак, как вы можете видеть, следующие данные в строке:
"Stop and Hear the Cicadas/Cold-Blooded "Stop and Hear the Cicadas/Cold-Blooded
неправильно разделены на два разных значения для primaryTitle
и originalTitle
столбцов и primaryTitle
содержит оба из них:
{
"runtimeMinutes":"Animation,Family",
"tconst":"tt7841930",
"seasonNumber":"6",
"titleType":"tvEpisode",
"averageRating":null,
"originalTitle":"0",
"parentTconst":"tt4947580",
"startYear":null,
"endYear":"24",
"numVotes":null,
"episodeNumber":"2",
"primaryTitle":"\"Stop and Hear the Cicadas/Cold-Blooded\t\"Stop and Hear the Cicadas/Cold-Blooded",
"isAdult":2018,
"genres":null
}
Что я делаю не так и как настроить Spark для правильного понимания и разделения этой строки?Как я упоминал ранее, многие другие строки этого файла правильно разделены на соответствующие столбцы.