首页 > 解决方案 > 使用字符串列表在 scala 中创建数据框

问题描述

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

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

标签: scalaapache-sparkpysparkapache-spark-sqlpyspark-dataframes

解决方案


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)

推荐阅读