我很困惑,因为我面临着一个奇怪的情况。 我的spark应用程序从Oracle数据库读取数据,并使用以下指令将其加载到数据帧中:
trace
然后,我将这个数据框中的记录数保存在变量中:
private val df = spark.read.jdbc(
url = [the jdbc url],
table="(" + [the query] + ") qry",
properties= [the oracle driver]
)
我用数据框架构创建一个配置单元表([my table]),然后在其上转储数据框的内容:
val records = df.count()
好吧,这是我迷路的地方;当我对要加载数据帧的配置单元表执行df.write
.mode(SaveMode.Append)
.insertInto([my hive db].[my table])
时,“有时”配置单元中的记录比select count(*)
变量中要多。
您能考虑这种不匹配的根源吗?
*关于可能的重复,我的问题不同。我没有多次用不同的值对数据框进行计数。我只统计一次数据框上的记录。我将数据帧转储到配置单元中,然后对配置单元表中的记录进行计数,有时配置单元中的记录要多于计数。*
非常感谢您。