我无法弄清楚,但我想这很简单。我有一个 Spark 数据框 df。该 df 具有“A”、“B”和“C”列。现在假设我有一个包含此 df 的列名称的数组:
column_names = Array("A","B","C")
我想以这样的方式执行df.select()
,以便我可以指定不选择哪些列。
示例:假设我不想选择“B”列。我试过了
df.select(column_names.filter(_!="B"))
但这不起作用,因为
org.apache.spark.sql.DataFrame cannot be applied to (Array[String])
所以,here它说它应该与 Seq 一起使用。不过,尝试
df.select(column_names.filter(_!="B").toSeq)
结果
org.apache.spark.sql.DataFrame cannot be applied to (Seq[String]).
我做错了什么?
最佳答案
Since Spark 1.4您可以使用drop
方法:
斯卡拉:
case class Point(x: Int, y: Int)
val df = sqlContext.createDataFrame(Point(0, 0) :: Point(1, 2) :: Nil)
df.drop("y")
Python:
df = sc.parallelize([(0, 0), (1, 2)]).toDF(["x", "y"])
df.drop("y")
## DataFrame[x: bigint]
关于scala - 如何在spark数据框中 "negative select"列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31434886/