为什么 registerTempTable 从数据框中删除一些行?

Why registerTempTable removes some rows from the data-frame?

我尝试通过以下方式在 HDInsight 上使用 Spark 数据帧创建 pandas 数据帧:

tmp = sqlContext.createDataFrame(sparkDf)
tmp.registerTempTable('temp') 

看起来 registerTempTable 从数据框中删除了一些行。

以下命令returns11000

sparkDf.count()

tmp 只有 2500 行。

我正在按照 here 所述的步骤进行操作。

我假设您使用的是 Jupyter 笔记本,并且您从 SQL 查询中获取数据,即

%%sql -o tmp
SELECT * FROM temp

这是因为 %%sql 查询透明地将结果数据帧的大小 tmp 限制为 2500 行。您可以使用 -n 选项选择新的限制:

%%sql -o tmp -n 11000
SELECT * FROM temp

你也可以选择 -1 表示你根本不想限制数据帧的大小(小心这一点,因为如果结果集足够大,它可能会导致你的驱动程序运行 内存不足或您的浏览器在渲染图表时 hang/crash:

%%sql -o tmp -n -1 
SELECT * FROM temp