spark scala:withcolumn不是unit的成员

aor9mmx1  于 2021-05-29  发布在  Spark
关注(0)|答案(2)|浏览(364)

我正在用spark-df读取spark中的csv文件。文件没有头列,但我想有头列。怎么做?我不知道我是否正确,我写了这个命令->val df=spark.read.format(“csv”).load(“/path/genchan1.txt”).show()
列的列名分别为_c0和_c1。然后我尝试使用:val df1=df.withcolumnrenamed(“\u c0”,“series”)将列名更改为所需的名称,但我得到的结果是“withcolumnrenamed”不是单元上的成员。
ps:我已经导入了spark.implicits.\和spark.sql.functions。
请帮助我知道是否有任何方法添加一个列标题到数据集,为什么我得到这个问题。

6yjfywim

6yjfywim1#

返回类型 showUnit . 请删除 show 从最后开始。

val df = spark.read.format("csv").load("/path/genchan1.txt")
df.show()

然后可以使用所有df功能-

val df1 = df.withColumnRenamed("_c0","Series")
flseospp

flseospp2#

如果您事先知道csv文件的结构,那么在向其加载数据时定义一个模式并将其附加到df是一个更好的解决方案。
快速参考的示例代码-

import org.apache.spark.sql.types._

val customSchema = StructType(Array(
  StructField("Series", StringType, true),
  StructField("Column2", StringType, true),
  StructField("Column3", IntegerType, true),
  StructField("Column4", DoubleType, true))
)

val df = spark.read.format("csv")
.option("header", "false") #since your file does not have header
.schema(customSchema)
.load("/path/genchan1.txt")

df.show()

相关问题