我正在读取具有|最后一个定界符,而load方法在Spark 1.6中使数据帧中的最后一列没有名称和值
df.withColumnRenamed(df.columns(83),“ Invalid_Status”)。drop(df.col(“ Invalid_Status”))
val df = sqlContext.read.format("com.databricks.spark.csv").option("delimiter","|").option("header","true").load("filepath")
val df2 = df.withColumnRenamed(df.columns(83),"Invalid_Status").
I expected result
root
|-- FddCell: string (nullable = true)
|-- Trn_time: string (nullable = true)
|-- CELLNAME.FddCell: string (nullable = true)
|-- Invalid_Status: string (nullable = true)
but actual output is
root
|-- FddCell: string (nullable = true)
|-- Trn_time: string (nullable = true)
|-- CELLNAME.FddCell: string (nullable = true)
|-- : string (nullable = true)
with no value in column so I have to drop this column and again make new column.
答案 0 :(得分:0)
将列重命名为Invalid_Status或完全删除该列并不确定要做什么。据我了解,您正在尝试对没有名称的最后一列进行操作(重命名/删除)。
但是我会尽力为您提供两种解决方案-
要使用相同的值(空白)重命名该列:
val df2 = df.withColumnRenamed(df.columns.last,"Invalid_Status")
仅要删除最后一列而不知道其名称,请使用:
val df3 = df.drop(df.columns.last)
然后添加具有默认值的“ Invalid_Status”列:
val requiredDf = df3.withColumn("Invalid_Status", lit("Any_Default_Value"))