Scala 如何筛选此数据帧中的值!=0
伙计们,我有这个数据框Scala 如何筛选此数据帧中的值!=0,scala,apache-spark,dataframe,apache-spark-sql,Scala,Apache Spark,Dataframe,Apache Spark Sql,伙计们,我有这个数据框 +----------+--------------------+-----------+----------+---+------+----------+ |test| content| environment| ID|dddd|dddd| date| +----------+--------------------+-----------+----------+---+------+----------+ |
+----------+--------------------+-----------+----------+---+------+----------+
|test| content| environment| ID|dddd|dddd| date|
+----------+--------------------+-----------+----------+---+------+----------+
| 0|{ "$set" : { "sta...|test| 400146779| u| Mongo| 123123123|
| 0|{ "$set" : { "sta...|test| -307131663| u| 0| 0|
| charges|{ "$set" : { "sta...|test| 0| u| mongo|1556816209|
| charges|{ "$set" : { "sta...|test| 19920822| u| mongo|1556816209|
+----------+--------------------+-----------+----------+---+------+----------+
如何筛选此数据帧并创建一个新的数据帧,其中只包含列中没有0的行
因此,新数据帧上的唯一值是
charges|{ "$set" : { "sta...|test| 19920822| u| mongo|1556816209
因为它不包含0
谢谢。您可以使用
数据集的过滤器:
val dsWithoutZeros = ds.filter(r => r.toSeq.forall{
//filter out row if any value in row is number and is equal 0
case i: Number => i.longValue() != 0
case _ => true //if value is not number, just return neutral value for forall
})
您的意思是,如果该行有任何int或long列的值为0,则应将其过滤掉?你已经试过了吗?是的,它应该会记录你可以共享你的代码吗?val successDF=dataFrame.filter($“ID”!==0)我正在尝试类似的方法,但它只检查一列,我想检查每一列的0