jdbc - 将行写入 SQL Server
问题描述
我在 SQL Server 中有一个表。我正在尝试将数据块中的 spark 数据框附加到 SQL 表中。我能够附加新行,但问题是它随机附加到 SQL 表中。我想将新行附加到 SQL 表的末尾。我怎么做?
SQL 表
╔═════════════════════════════╗
║ Name a b c d ║
╠═════════════════════════════╣
║1 Lisa 5 4 1 3 ║
║2 Timmy 3 2 7 2 ║
║3 Rann 2 3 1 5 ║
║4 Bob 1 6 3 4 ║
╚═════════════════════════════╝
火花数据框
╔═════════════════════════════╗
║ Name a b c d ║
╠═════════════════════════════╣
║1 Mark 10 3 2 4 ║
║2 Rudy 5 6 7 8 ║
╚═════════════════════════════╝
我想要的是
╔═════════════════════════════╗
║ Name a b c d ║
╠═════════════════════════════╣
║1 Lisa 5 4 1 3 ║
║2 Timmy 3 2 7 2 ║
║3 Rann 2 3 1 5 ║
║4 Bob 1 6 3 4 ║
║5 Mark 10 3 2 4 ║
║6 Rudy 5 6 7 8 ║
╚═════════════════════════════╝
当我使用此代码附加时
df.write.mode("append").jdbc(url=jdbcurl, table="employee")
我在 SQL 服务器中得到了这个结果。马克和鲁迪应该在底部,但它是随机附加的。我想添加一个参数吗?
╔═════════════════════════════╗
║ Name a b c d ║
╠═════════════════════════════╣
║1 Lisa 5 4 1 3 ║
║2 Rudy 5 6 7 8 ║
║3 Timmy 3 2 7 2 ║
║4 Mark 10 3 2 4 ║
║5 Rann 2 3 1 5 ║
║6 Bob 1 6 3 4 ║
╚═════════════════════════════╝
解决方案
SQL 中的表没有顺序。是一套。换句话说,您可以随意相信它们是在最后添加的,但不能保证它们会根据插入顺序以任何顺序返回。
如果您想按特定顺序获取数据,您应该根据您希望查看的顺序运行带有 ORDER BY 的查询。如果您愿意,那可以是表示插入时间的列。
推荐阅读
- php - PHP SESSION 未定义变量
- django - 将用户的 ID 和登录令牌保存在本地存储中是个好主意吗?
- authentication - 如何登录一个网站然后不登录就转到其他网站?
- html - 如何将模糊的图像变成链接(HTML)
- bash - Bash:使用 tail -n +1 删除标题行时遇到问题
在 bash - arrays - 如何从 mongodb 中的数组中仅获取条件满足/匹配对象?
- linux - 当我没有文件但只有一行的长字符串时,如何在 grep 中使用反转“-v”?
- elasticsearch - NoNodeAvailableException [没有配置的节点可用:
- sql - 如何使用 SQL 从另一个表中的一个表中查找第一个匹配结果?
- python - 熊猫根据条件将一列分成两列