Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala spark数据帧过滤器并选择_Scala_Apache Spark_Apache Spark Sql - Fatal编程技术网

Scala spark数据帧过滤器并选择

Scala spark数据帧过滤器并选择,scala,apache-spark,apache-spark-sql,Scala,Apache Spark,Apache Spark Sql,我有一个spark scala数据帧,需要根据条件过滤元素并选择计数 val filter = df.groupBy("user").count().alias("cnt") val **count** = filter.filter(col("user") === ("subscriber").select("cnt") 我面临的错误是value select不是org.apache.spark.sql.Column的成员 此外,由于某些原因,计数是数据集[行] 想在一行中得到计数吗

我有一个spark scala数据帧,需要根据条件过滤元素并选择计数

  val filter = df.groupBy("user").count().alias("cnt")
  val **count** = filter.filter(col("user") === ("subscriber").select("cnt")
我面临的错误是value select不是org.apache.spark.sql.Column的成员 此外,由于某些原因,计数是数据集[行] 想在一行中得到计数吗?

您缺少“)”之前。选择,请检查下面的代码

列类没有.select方法,您必须在Dataframe上调用select

val filter = df.groupBy("user").count().alias("cnt")
  val **count** = filter.filter(col("user") === "subscriber").select("cnt")

您之前缺少“)”。选择,请检查下面的代码

列类没有.select方法,您必须在Dataframe上调用select

val filter = df.groupBy("user").count().alias("cnt")
  val **count** = filter.filter(col("user") === "subscriber").select("cnt")


DataSet[Row]
DataFrame

RDD[Row]
DataFrame
所以不必担心。。它的数据帧

为了更好的理解,请看这个

关于
select不是org.apache.spark.sql.Column的成员,它纯粹是编译错误

 val filter = df.groupBy("user").count().alias("cnt")
  val count = filter.filter (col("user") === ("subscriber"))
    .select("cnt")

将工作,因为您缺少)大括号,它是过滤器的闭合大括号

DataSet[Row]
DataFrame

RDD[Row]
DataFrame
所以不必担心。。它的数据帧

为了更好的理解,请看这个

关于
select不是org.apache.spark.sql.Column的成员,它纯粹是编译错误

 val filter = df.groupBy("user").count().alias("cnt")
  val count = filter.filter (col("user") === ("subscriber"))
    .select("cnt")

将工作,因为您缺少)大括号,它是过滤器的闭合大括号

你可以发布完整的代码和一些示例数据。你是如何构建df的,你可以发布代码吗?发布完整的代码将有助于解决你的问题,你发布的部分代码没有用处。我不确定df是Dataframe还是Dataset。你能发布完整的代码和一些示例数据吗?你是如何构建df的,你能发布代码吗?发布完整的代码将有助于解决你的问题,你发布的是没有用的部分代码。我不确定df是Dataframe还是Dataset,但我还是得到了错误,因为类型不匹配;找到:org.apache.spark.sql.DataFrame(扩展为)org.apache.spark.sql.Dataset[org.apache.spark.sql.Row]必需:Int+-----------------------------------+--+--+--+--user | count |+-----------------+--+--subscriber | 267 |+-------------+Filter数据框正在提供输出,这是变量计数的输入,val计数是Dataset[Row]例如,如果我们还有一条语句,比如val count=filter.filter(col(“user”)==“Consumer”)。选择(“cnt”),如果我们在filter数据框中没有Consumer的数据。火花工作将失败。如何处理这种情况?不,它不会失败。它只会返回空数据帧。我正在尝试转换为rdd并写入变量,如下所示:val count=filter.filter(col(“user”)==“Consumer”).select(“cnt”).rdd.map(x=>x(0)).collect()(0)。所以我的工作失败了,因为没有数据。有什么建议吗?我仍然得到错误,因为类型不匹配;找到:org.apache.spark.sql.DataFrame(扩展为)org.apache.spark.sql.Dataset[org.apache.spark.sql.Row]必需:Int+-----------------------------------+--+--+--+--user | count |+-----------------+--+--subscriber | 267 |+-------------+Filter数据框正在提供输出,这是变量计数的输入,val计数是Dataset[Row]例如,如果我们还有一条语句,比如val count=filter.filter(col(“user”)==“Consumer”)。选择(“cnt”),如果我们在filter数据框中没有Consumer的数据。火花工作将失败。如何处理这种情况?不,它不会失败。它只会返回空数据帧。我正在尝试转换为rdd并写入变量,如下所示:val count=filter.filter(col(“user”)==“Consumer”).select(“cnt”).rdd.map(x=>x(0)).collect()(0)。所以我的工作失败了,因为没有数据。有什么建议吗?如果你没事,请小心接受,如果你没事,请小心接受并接受