我正在阅读带有标题''的输入文件。 'dot as DataFrame。我在尝试修剪该文件中的值时遇到问题。
示例testCode:
val sqc = new SQLContext(getLocalSparkContext())
import sqc.implicits.localSeqToDataFrameHolder
import org.apache.spark.sql.functions._
val testDataFrame = Seq((" test data ", " dummy data ", " a multi word string ")).toDF("col1", "col. 2", "col3")
testDataFrame.withColumn("col. 2", trim(testDataFrame("`col. 2`"))).show()
testDataFrame.withColumn("col1", trim(testDataFrame("col1"))).show()
如果我尝试执行上面的代码,我就会
无法解决'col。 2'给定输入列col1,col。 2,col3; org.apache.spark.sql.AnalysisException:无法解析'col。 2'给出 输入列col1,col。 2,col3;
就在这一行:testDataFrame.withColumn("col1", trim(testDataFrame("col1"))).show()
令人惊讶的是,
testDataFrame.withColumn("col. 2", trim(testDataFrame("`col. 2`"))).show()
通过。 我甚至试图将列替换为:
testDataFrame.withColumnRenamed("col. 2", "`col. 2`").show()
仍然得到同样的例外。对此有何帮助?
答案 0 :(得分:0)
试试这个:
val t1 = testDataFrame.withColumn(“tmp”,trim(col(“col. 2
”)))。drop(testDataFrame(“col. 2
”))
val t2 = t1.withColumn(“col .2”,t1(“tmp”))。drop(t1(“tmp”))