SPARK 2.0.0选择不同的不稳定结果



我正在通过spark 2.0.0

运行pyspark2

考虑加载到数据框中的稳定且恒定的数据集,我确实会通过某些列删除重复:

vw_ticket = read_csv(...)
vw_ticket_in_booking = vw_ticket.dropDuplicates(['BOOKING_TICKET_ID'])
vw_ticket_in_booking.createOrReplaceTempView('vw_ticket_in_booking')

,然后

spark.sql('select count(distinct(booking_id)) from vw_ticket_in_booking t').show()

给出无法重复的结果,不同的数字,但是

spark.sql('select count(distinct(booking_id)) from vw_ticket t').show()
spark.sql('select count(*) from vw_ticket t').show()
spark.sql('select count(*) from vw_ticket_in_booking t').show()

总是稳定的。什么是原因?

dropDuplicate就像做 groupBy然后是 first。将会有一个混音,并写入对值进行分类,然后再重复编写它们。这将导致不同的线路首先。

如果您想知道要保留哪个线路值,则应应用窗口函数来评估第一个行(sort是不够的,因为之后仍然会有随机混音)。

相关内容

  • 没有找到相关文章

最新更新