1
我拼花文件加載到SQL上下文中這樣的:爲什麼使用group by子句時,pyspark 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|
+----------------+----------+
不過,如果我使用GROUPBY從rdd集。我得到了不同的結果:
sqlCtx.sql("SELECT name FROM type_table").groupBy("name").count().show()
+----------+------+
| name | count|
+----------+------+
| x|226307|
| null|586822|
+----------+------+
兩個方法的x的計數是相同的,但null是完全不同的。看起來像sql語句不正確地計數爲null與組。你能指出我做錯了什麼嗎?
感謝,
你能打印出你的DataFrame架構嗎? – eliasah