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

Rom*_*man 0 python azure hdinsight apache-spark pyspark

我尝试使用HDInsight上的Spark数据帧以下列方式创建一个pandas数据帧:

tmp = sqlContext.createDataFrame(sparkDf)
tmp.registerTempTable('temp') 
Run Code Online (Sandbox Code Playgroud)

它看起来像是registerTempTable从数据框中删除了一些行.

以下命令返回11000

sparkDf.count()
Run Code Online (Sandbox Code Playgroud)

虽然tmp只有2500行.

我按照这里描述的步骤.

Ric*_*art 5

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

%%sql -o tmp
SELECT * FROM temp
Run Code Online (Sandbox Code Playgroud)

发生这种情况是因为%%sql查询透明地将结果数据框的大小限制tmp为2500行.您可以使用以下-n选项选择新限制:

%%sql -o tmp -n 11000
SELECT * FROM temp
Run Code Online (Sandbox Code Playgroud)

您也可以选择-1说您根本不想限制数据帧的大小(请注意这一点,因为如果结果集足够大,可能会导致驱动程序内存不足或浏览器挂起/渲染图表时崩溃):

%%sql -o tmp -n -1 
SELECT * FROM temp
Run Code Online (Sandbox Code Playgroud)