将行写入 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 服务器中得到这个结果。 MarkRudy 应该在底部,但它是随机添加的。是否有我想添加的参数?

╔═════════════════════════════╗
║   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 的查询。如果您愿意,那可以是代表插入时间的列。