使用字符串列表在Scala中创建数据框

时间:2020-04-14 21:08:29

标签: scala apache-spark pyspark apache-spark-sql pyspark-dataframes

我的数据以List [String]的形式出现,其中每个字符串都是一行,而各列用逗号分隔。我必须创建一个数据框,以便可以通过在其上创建视图来查询数据。 有人可以指导我如何将其转换为Dataframe。

List[String] = List([Table,EXTERNAL,hive,name1],[Table,EXTERNAL,hive,name2],[Table,EXTERNAL,hive,name3])

1 个答案:

答案 0 :(得分:1)

import spark.implicits._
val df = List("Table,EXTERNAL,hive,name1","Table,EXTERNAL,hive,name2","Table,EXTERNAL,hive,name3")
  .map(_.split(",") match {
    case Array(table, tableType, db, name) => (table, tableType, db, name)
  })
  .toDF("table", "type", "db", "name")
df.show()
df.printSchema()

打印:

+-----+--------+----+-----+
|table|    type|  db| name|
+-----+--------+----+-----+
|Table|EXTERNAL|hive|name1|
|Table|EXTERNAL|hive|name2|
|Table|EXTERNAL|hive|name3|
+-----+--------+----+-----+

root
 |-- table: string (nullable = true)
 |-- type: string (nullable = true)
 |-- db: string (nullable = true)
 |-- name: string (nullable = true)