csv - 如何在 spark scala 中加载包含多行记录的 CSV 文件?
问题描述
我有一个多行字段 csv ,我尝试通过 spark 将其加载为数据框。
Cust_id, cust_address, city,zip
1, "1289 cobb parkway
Bufford", "ATLANTA",34343
2, "1234 IVY lane
Decatur", "ATLANTA",23435
val df = Spark.read.format("csv")
.option("multiLine", true)
.option("header", true)
.option("escape", "\"")
.load("/home/SPARK/file.csv")
df.show()
这向我展示了数据框,例如-
+--------+-------------------+-----+----+
| id | address | city| zip|
+--------+-------------------+-----+----+
| 1| "1289 cobb parkway| null|null|
|Bufford"| "ATLANTA"|34343|null|
| 2| "1234 IVY lane| null|null|
|Decatur"| "ATLANTA"|23435|null|
+--------+-------------------+-----+----+
我想要输出像 -
+---+--------------------+-------+-----+
| id| address| city| zip|
+---+--------------------+-------+-----+
| 1|1289 cobb parkway...|ATLANTA|34343|
| 2|1234 IVY lane Dec...|ATLANTA|23435|
+---+--------------------+-------+-----+
解决方案
val File = sqlContext.read.format("com.databricks.spark.csv")
.option("delimiter", delimiter)
.option("header",true)
.option("quote", "\"")
.option("multiLine", "true")
.option("inferSchema", "true")
.option("parserLib", "UNIVOCITY")
.option("ignoreTrailingWhiteSpace","true")
.option("ignoreLeadingWhiteSpace", true)
.load(file_name)
推荐阅读
- kendo-ui-angular2 - KendoUi Angular2 Radio 和 CheckBox 样式不适用于 RTL 方向
- ios - UITextView/NSAttribute:检测单词是否以特定符号开头
- android - 如何在 android 中本地化谷歌地图,并使搜索 URL 接受不同语言的参数
- android - 如何使用 viewpager 在 Actionbar 选项卡中获取片段的位置
- android - Android Studio - 如何使用谷歌地图 api 在学校地图上随机添加标记
- python - 生成透明文本图像 OpenCV
- java - 从具有多个默认值的缓存中提取时的代码气味?
- reactjs - 如何在 blaze 中使用反应组件?
- git - Git 在推送代码时返回错误 403
- yii2 - 如何在 SearchModel 中为布尔属性编程查询与或相结合