Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用spark从mysql提取数据库并将其保存在HDFS上_Mysql_Scala_Hadoop_Apache Spark - Fatal编程技术网

使用spark从mysql提取数据库并将其保存在HDFS上

使用spark从mysql提取数据库并将其保存在HDFS上,mysql,scala,hadoop,apache-spark,Mysql,Scala,Hadoop,Apache Spark,我有一个虚拟数据库,它有一个非常简单的模式。数据库由两个表组成,每个表有两列,两列类型都是int。 我制作了一个spark程序,可以在数据帧中提取数据库: import org.apache.spark.sql.SparkSession object mysql_to_hdfs extends App{ val SPARK_CLUSTER_ADDRESS = "local[*]" val APPLICATION_NAME = "mysql_to_hdfs" val DB_URL

我有一个虚拟数据库,它有一个非常简单的模式。数据库由两个表组成,每个表有两列,两列类型都是int。 我制作了一个spark程序,可以在数据帧中提取数据库:

import org.apache.spark.sql.SparkSession

object mysql_to_hdfs extends App{
  val SPARK_CLUSTER_ADDRESS = "local[*]"
  val APPLICATION_NAME = "mysql_to_hdfs"

  val DB_URL = "jdbc:mysql://localhost:3306/practice_schema?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC"
  val DB_USER = "root"
  val DB_PWD = "root"

  val HDFS_URL = ""

  val sparkSession = SparkSession.builder()
    .master("local[*]")
    .appName(APPLICATION_NAME)
    .getOrCreate()

  val sc = sparkSession.sparkContext
  val sqlC = sparkSession.sqlContext

  val optionsMap:Map[String, String] = Map("url" -> DB_URL, "user" -> DB_USER, "password" -> DB_PWD, "dbtable" -> "table_1")

  //Insert the key/Value tableName in optionsMap of the table you want to load.


  val mysqlDataframe = sqlC.read.format("jdbc").options(optionsMap).load()

  mysqlDataframe.show()


}
现在,我必须对将数据帧的内容放入hadoop中的部分进行编码。我计划按如下方式保存数据帧:

mysqlDataframe.write.save("pathToTheFile.csv")
我还不能测试它(我还没有一个虚拟hadoop),但我已经有一些问题了

  • 在数据存储之后,如果我在Hadoop上面安装Hive,是否可以在这个数据库上请求
  • 我是否需要对文件分区进行其他操作

谢谢。

您可以通过在本地文件系统上保存文件来测试数据,明确使用
文件:
方案而不是
hdfs:
——例如
file:///path/to/file.csv
>>假设您使用了正确的语法来指定需要CSV平面文件,这似乎不是事实。你删除了RTFM hahaYeah,经过再三考虑,“手动”并不真正适合Spark,其功能和语法的变化速度比光速更快。。。