加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – 如何在spark的数据框中“否定选择”列

发布时间:2020-12-16 09:28:02 所属栏目:安全 来源:网络整理
导读:我无法弄清楚,但猜测它很简单.我有一个火花数据帧df.该df具有列“A”,“B”和“C”.现在假设我有一个包含此df列的名称的Array: column_names = Array("A","B","C") 我想以这样的方式做一个df.select(),我可以指定哪些列不要选择. 示例:假设我不想选择列“B
我无法弄清楚,但猜测它很简单.我有一个火花数据帧df.该df具有列“A”,“B”和“C”.现在假设我有一个包含此df列的名称的Array:

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")

蟒蛇:

df = sc.parallelize([(0,0),(1,2)]).toDF(["x","y"])
df.drop("y")
## DataFrame[x: bigint]

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读