我正在尝试创建一个spark应用程序,它对创建、读取、写入和更新MySQL数据非常有用。那么,有没有办法使用Spark创建一个MySQL表?
下面是在MySQL数据库中创建表的Scala JDBC代码。我怎样才能通过Spark做到这一点?
package SparkMysqlJdbcConnectivity
import org.apache.spark.sql.SparkSession
import java.util.Properties
import java.lang.Class
import java.sql.Connection
import java.sql.DriverManager
object MysqlSparkJdbcProgram {
def main(args: Array[String]): Unit = {
val spark = SparkSession.builder()
.appName("MysqlJDBC Connections")
.master("local[*]")
.getOrCreate()
val driver = "com.mysql.jdbc.Driver"
val url = "jdbc:mysql://localhost:3306/world"
val operationtype = "create table"
val tablename = "country"
val tablename2 = "state"
val connectionProperties = new Properties()
connectionProperties.put("user", "root")
connectionProperties.put("password", "root")
val jdbcDf = spark.read.jdbc(url, s"${tablename}", connectionProperties)
operationtype.trim() match {
case "create table" => {
// Class.forName(driver)
try{
val con:Connection = DriverManager.getConnection(url,connectionProperties)
val result = con.prepareStatement(s"create table ${tablename2} (name varchar(255), country varchar(255))").execute()
println(result)
if(result) println("table creation is unsucessful") else println("table creation is unsucessful")
}
}
case "read table" => {
val jdbcDf = spark.read.jdbc("jdbc:mysql://localhost:3306/world", s"${tablename}", connectionProperties)
jdbcDf.show()
}
case "write table" => {}
case "drop table" => {}
}
}
}
当您编写jdbcDf数据框时,这些表将自动创建。
jdbcDf
.write
.jdbc("jdbc:mysql://localhost:3306/world", s"${tablename}", connectionProperties)
如果要指定表模式,
jdbcDf
.write
.option("createTableColumnTypes", "name VARCHAR(500), col1 VARCHAR(1024), col3 int")
.jdbc("jdbc:mysql://localhost:3306/world", s"${tablename}", connectionProperties)
问题内容: 我创建了一个社交网站,其中包含三个简单的表格,如下所示。 用户可以阻止任何他们想要的人,并且如果发生阻止,两个用户将不再在他们的新供稿中看到彼此的帖子。 在我的表中,这意味着并且不会看到彼此的帖子,但是“ user3”通常会看到每个人的帖子,因为他不属于该表格块。 从SQL查询中user1无法看到user2的帖子, 但是user2仍然可以看到user1的帖子, 这是我不想要的。我可以针
在MySQL 中,可以使用 CREATE DATABASE 语句创建数据库,语法格式如下: 中的内容是可选的。语法说明如下: <数据库名>:创建数据库的名称。MySQL 的数据存储区将以目录方式表示 MySQL 数据库,因此数据库名称必须符合操作系统的文件夹命名规则,不能以数字开头,尽量要有实际意义。注意在 MySQL 中不区分大小写。 IF NOT EXISTS:在创建数据库之前进行判断,只有该
问题内容: 作为MySQL的新手,我已经安装了最新版本的MySQL Workbench(5.2.33)。我想知道如何使用此应用程序创建数据库。在SQL编辑器的“概述”选项卡中,几乎没有显示“ MySQL模式”,这些模式是现有数据库吗? 问题答案: 启动MySQL Workbench。 在欢迎窗口的左窗格中,在“打开连接以开始查询”下选择要连接的数据库。 查询窗口将打开。在其左窗格上,有一个标题为“
问题内容: 问题: 是否可以在迁移脚本中创建一个新的数据库,然后连接到它?怎么样? 我的场景: 我正在尝试在Java项目(使用Jersey2.4 + tomcat 7 + PostgreSQL 9.3.1 + EclipseLink的RESTful应用程序)中使用flyway来管理使用git的不同开发人员之间的更改。我写了自己的初始化脚本,并运行了: 而且效果很好。问题是我无法使用脚本创建新的数据
问题内容: 您能帮忙解决这个问题吗? 我正在尝试创建然后使用一个名为TIGER的数据库。 如果我在MySQL中创建数据库并且运行完美,我没有问题。 我想做的是从Java创建它。这样,当首次运行代码时,它将在初始启动过程中创建数据库。如果可能的话,我想用一种干净的方法将其装箱。 有人可以告诉我您实际将代码放置在哪里 这是代码 这是创建数据库的代码 在此先感谢,感谢您的帮助。 因为我是一个长期读者但还
在此容器中只存在默认DB。 如何创建数据库?