scala – 为没有列名的csv文件中读取的数据添加列名

我正在使用Apache Spark和 Scala.

我有一个csv文件,第一行没有列名.就像这样:

28,Martok,49,476
29,Nog,48,364
30,Keiko,50,175
31,Miles,39,161

列表示ID,名称,年龄,numOfFriends.

在我的Scala对象中,我使用来自csv文件的SparkSession创建数据集,如下所示:

val spark = SparkSession.builder.master("local[*]").getorCreate()
val df = spark.read.option("inferSchema","true").csv("../myfile.csv")
df.printSchema()

当我运行程序时,结果是:

|-- _c0: integer (nullable = true)
|-- _c1: string (nullable = true)
|-- _c2: integer (nullable = true)
|-- _c3: integer (nullable = true)

如何在数据集中的列中添加名称

解决方法

在读取CSV文件时,您可以使用toDF指定列名:

val df = spark.read.option("inferSchema","true").csv("../myfile.csv").toDF(
  "ID","name","age","numOfFriends"
)

或者,如果您已经创建了DataFrame,则可以按如下方式重命名其列:

val newColNames = Seq("ID","numOfFriends")
val df2 = df.toDF(newColNames: _*)

相关文章

共收录Twitter的14款开源软件,第1页Twitter的Emoji表情 Tw...
Java和Scala中关于==的区别Java:==比较两个变量本身的值,即...
本篇内容主要讲解“Scala怎么使用”,感兴趣的朋友不妨来看看...
这篇文章主要介绍“Scala是一种什么语言”,在日常操作中,相...
这篇文章主要介绍“Scala Trait怎么使用”,在日常操作中,相...
这篇文章主要介绍“Scala类型检查与模式匹配怎么使用”,在日...