在向配置单元加载数据时在字段中添加周围的引号

8cdiaqws  于 2021-06-25  发布在  Hive
关注(0)|答案(1)|浏览(281)

我有这样的数据:

1,Anna,London
2,Peter,Amsterdam

我想将此数据作为dataframe加载到配置单元中,并添加周围的引号,以便dataframe中的数据如下所示:

"1" "Anna" "London"
"2" "Peter" "Amsterdam"

我已将分隔符设置为“,”。我知道有引号功能,但它的作用正好相反。如何添加引号?

bweufnob

bweufnob1#

你可以通过 format_string 功能

scala> val df = Seq(("1","Anna","London"),("2","Peter","Amsterdam")).toDF()
df: org.apache.spark.sql.DataFrame = [_1: string, _2: string ... 1 more field]

scala> df.show()
+---+-----+---------+
| _1|   _2|       _3|
+---+-----+---------+
|  1| Anna|   London|
|  2|Peter|Amsterdam|
+---+-----+---------+

scala> val c = df.columns.map(df(_)).map((format_string("\"%s\"",_)))
c: Array[org.apache.spark.sql.Column] = Array(format_string("%s", _1), format_string("%s", _2), format_string("%s", _3))

scala> df.select(c:_*).toDF(df.columns:_*).show()
+---+-------+-----------+
| _1|     _2|         _3|
+---+-------+-----------+
|"1"| "Anna"|   "London"|
|"2"|"Peter"|"Amsterdam"|
+---+-------+-----------+

相关问题