【发布时间】:2020-04-12 21:17:19
【问题描述】:
我需要检查我的表中的重复文件名,如果文件计数为 0,那么我需要使用 sparkSql 在我的表中加载一个文件。我写了下面的代码。
val s1=spark.sql("select count(filename) from mytable where filename='myfile.csv'") //giving '2'
s1: org.apache.spark.sql.DataFrame = [count(filename): bigint]
s1.show //giving 2 as output
//s1 给了我表中的文件计数,然后我需要使用 if 语句比较这个计数值。 我正在使用下面的代码。
val s2=s1.count //not working always giving 1
val s2=s1.head.count() // error: value count is not a member of org.apache.spark.sql.Row
val s2=s1.size //value size is not a member of Unit
if(s1>0){ //code } //value > is not a member of org.apache.spark.sql.DataFrame
有人可以给我一个提示,我应该怎么做。我怎样才能得到数据框值,并可以用作变量来检查条件。 即
if(value of s1(i.e.2)>0){
//my code
}
【问题讨论】:
-
您或许应该再次阅读一下 SQL 中的聚合函数的作用以及数据帧上的
count的作用。
标签: scala apache-spark apache-spark-sql