使用 hive 或 spark-sql 创建 sparkExam 库,create database if not exists sparkExam;在sparkExam库中创建自己名字拼音的表,create table if not exists sparkExam.xxx(id int,name string,gender string,age int);插入一条自己的数据,insert into xxx values(1,'xxx','F?M?','age?')。编写spark程序将数据读入并创建为 dataframe,最后保存在 MySQL 同名库和表中
时间: 2024-02-26 16:57:58 浏览: 139
好的,我会为您提供一个基于Spark的程序,实现将数据从Hive中读取,转换为DataFrame,然后将其保存到MySQL数据库中。
首先,您需要确保您的Spark集群已经连接到Hive和MySQL。然后,您可以使用以下代码将数据从Hive中读取并转换为DataFrame:
```scala
import org.apache.spark.sql.{DataFrame, SaveMode, SparkSession}
object HiveToMySQL {
def main(args: Array[String]): Unit = {
val spark = SparkSession.builder()
.appName("HiveToMySQL")
.enableHiveSupport()
.getOrCreate()
import spark.implicits._
val df: DataFrame = spark.sql("SELECT * FROM sparkExam.xxx")
df.show()
val url = "jdbc:mysql://<mysql_host>:<mysql_port>/<mysql_database>"
val table = "xxx"
val properties = new java.util.Properties()
properties.setProperty("driver", "com.mysql.jdbc.Driver")
properties.setProperty("user", "<mysql_username>")
properties.setProperty("password", "<mysql_password>")
df.write.mode(SaveMode.Overwrite)
.jdbc(url, table, properties)
spark.stop()
}
}
```
其中,`<mysql_host>`、`<mysql_port>`、`<mysql_database>`、`<mysql_username>`和`<mysql_password>`需要替换为您MySQL数据库的实际信息。
您还需要将此代码打包为可执行的Jar文件,并将其提交到Spark集群中执行。执行命令如下:
```
spark-submit --class HiveToMySQL /path/to/your/jar/file.jar
```
执行成功后,您将看到数据已经被成功保存到MySQL数据库中。
阅读全文