apache-spark - Spark:记录计数不匹配
问题描述
我很困惑,因为我面临着一个奇怪的情况。我的 spark 应用程序从 Oracle 数据库读取数据并使用以下指令将其加载到数据框中:
private val df = spark.read.jdbc(
url = [the jdbc url],
table="(" + [the query] + ") qry",
properties= [the oracle driver]
)
然后,我将这个数据框中的记录数保存在一个变量中:
val records = df.count()
我使用数据框架构创建了一个配置单元表([我的表]),并将数据框的内容转储在其上:
df.write
.mode(SaveMode.Append)
.insertInto([my hive db].[my table])
好吧,这就是我迷路的地方;当我select count(*)
对正在加载数据框的配置单元表执行 a 时,“有时”配置单元中的记录比records
变量中的记录多。
你能想到这种不匹配的根源是什么吗?
*与可能的重复有关,我的问题有所不同。我没有用不同的值多次计算我的数据框。我计算了我的数据框上的记录一次。我将数据帧转储到 hive 中,并计算 hive 表中的记录,有时 hive 中的记录多于我的计数。*
非常感谢您提前。
解决方案
推荐阅读
- dataweave - 如何在 Mule 4 中将带有逗号内引号的数据的 CSV 转换为 JSON
- php - 如何使用 cURL 从 API 获取所有内容
- java - 如何在不加载整个上下文的情况下加载单个 bean 以在 Spring Boot 中进行测试?
- logging - 启用日志记录以记录系统上打开的每个用户文件的详细信息
- c++ - LNK2019 使用特征向量时未解决的外部符号错误
- github-api - 如何在 Github 用户 API 中设置过滤器?
- javascript - 定义一个接受小写单词的 TypeScript 类型
- vba - 在表格中的光标位置添加文本框
- python - 如何使用 MatPlotLib 更改科学模型的起始值以获取第二行?
- javascript - Gatsby 的产品与开发中的 Webpack 进程/浏览器