Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.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
Apache spark 为什么pyspark sql不能使用group by子句正确计数?_Apache Spark_Pyspark_Apache Spark Sql_Pyspark Sql - Fatal编程技术网

Apache spark 为什么pyspark sql不能使用group by子句正确计数?

Apache spark 为什么pyspark sql不能使用group by子句正确计数?,apache-spark,pyspark,apache-spark-sql,pyspark-sql,Apache Spark,Pyspark,Apache Spark Sql,Pyspark Sql,我将拼花文件加载到sql上下文中,如下所示: sqlCtx = SQLContext(sc) rdd_file = sqlCtx.read.parquet("hdfs:///my_file.parquet") rdd_file.registerTempTable("type_table") 然后我运行这个简单的查询: sqlCtx.sql('SELECT count(name), name from type_table group by name order by count(name)')

我将拼花文件加载到sql上下文中,如下所示:

sqlCtx = SQLContext(sc)
rdd_file = sqlCtx.read.parquet("hdfs:///my_file.parquet")
rdd_file.registerTempTable("type_table")
然后我运行这个简单的查询:

sqlCtx.sql('SELECT count(name), name from type_table group by name order by count(name)').show()
结果是:

+----------------+----------+
|count(name)     |name      |
+----------------+----------+
|               0|      null|
|          226307|         x|
+----------------+----------+
但是,如果我使用rdd集合中的groupBy。我得到了一个不同的结果:

sqlCtx.sql("SELECT name FROM type_table").groupBy("name").count().show()

+----------+------+
| name     | count|
+----------+------+
|         x|226307|
|      null|586822|
+----------+------+
对于这两个方法,x的计数是相同的,但是null是完全不同的。sql语句似乎没有正确地将group by计算为null。你能指出我做错了什么吗

谢谢,

计数(名称)将排除空值,如果您提供计数(*),它也将提供空值

试试下面

sqlCtx.sql('SELECT count(*), name from type_table group by name order by count(*)').show()

你能打印出你的数据帧模式吗?