我正在尝试使用Spark读取存储在非常大的表(包含181,843,820
行和50
列)中的数据,这是我的训练集,但是,当我使用spark.table()
时我注意到调用DataFrame的count()
时,行数与行数不同,我当前正在使用PyCharm。
我想对表中的数据进行预处理,然后才能将其用作我需要训练的模型的训练集。 加载表时,我发现加载表的DataFrame小得多(在这种情况下为数据的10%)。
我尝试过的事情:
- 提高了
spark.kryoserializer.buffer.max
的容量。- 将较小的表加载到DataFrame(70k行)中,实际上在
count()
输出中没有发现差异。
此示例与我为调查问题而运行的代码非常相似。
df = spark.table('myTable')
print(spark.table('myTable').count()) # output: 181,843,820
print(df.count()) # output 18,261,961
我希望两个输出都相同(原始181m),但是它们却不一样,而且我不明白为什么。