将行写入 SQL 服务器
Write rows to SQL server
我在 SQL 服务器中有一个 table。我正在尝试将数据块中的 spark 数据帧附加到 SQL table。我可以附加新行,但问题是它随机附加到 SQL table。我想将新行附加到 SQL table 的末尾。我该怎么做?
SQL table
╔═════════════════════════════╗
║ 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 ║
╚═════════════════════════════╝
Spark 数据帧
╔═════════════════════════════╗
║ 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 服务器中得到这个结果。 Mark 和 Rudy 应该在底部,但它是随机添加的。是否有我想添加的参数?
╔═════════════════════════════╗
║ 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 的查询。如果您愿意,那可以是代表插入时间的列。
我在 SQL 服务器中有一个 table。我正在尝试将数据块中的 spark 数据帧附加到 SQL table。我可以附加新行,但问题是它随机附加到 SQL table。我想将新行附加到 SQL table 的末尾。我该怎么做?
SQL table
╔═════════════════════════════╗
║ 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 ║
╚═════════════════════════════╝
Spark 数据帧
╔═════════════════════════════╗
║ 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 服务器中得到这个结果。 Mark 和 Rudy 应该在底部,但它是随机添加的。是否有我想添加的参数?
╔═════════════════════════════╗
║ 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 的查询。如果您愿意,那可以是代表插入时间的列。