Spark读取与写入文件

本文介绍了在Spark 2.3.0版本中如何通过SparkSession作为统一入口进行文件的读取和写入操作,涵盖了读取与写入的基本步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

入口

在 2.3.0 的Spark版本中, SparkSession是统一的入口了

//创建 SparkSession
val spark = SparkSession
      .builder
      .appName('MySparkApp')
      .enableHiveSupport() //开启访问Hive数据, 要将hive-site.xml等文件放入Spark的conf路径
      .master('local[2]')
      .getOrCreate()
读取
val csv_data = spark.read.csv("file:///D:/java_workspace/fun_test.csv") //本地文件
val csv_data = spark.read.csv("hdfs:///tmp/fun_test.csv") //HDFS文件
val c
### 使用 Spark 从 MySQL 读取数据并写入 Hive 为了实现这一目标,需先确保环境已正确配置。具体来说,在启动任何操作前,应确认 Hadoop 集群处于开启状态,并且 Hive 的仓库位于 HDFS 上,默认路径为 `/user/hive/warehouse`[^4]。 #### 创建 SparkSession 并加载必要的库 创建支持 Hive 的 SparkSession 是至关重要的一步: ```scala import org.apache.spark.sql.SparkSession val spark = SparkSession.builder() .appName("MySQL to Hive Example") .config("spark.master", "local") // 根据实际情况调整 master 地址 .enableHiveSupport() // 启用对 Hive 表的支持 .getOrCreate() // 加载 JDBC 和其他必要驱动程序 Class.forName("com.mysql.cj.jdbc.Driver").newInstance() ``` 上述代码片段展示了如何初始化带有 Hive 支持的 Spark 应用程序实例[^1]。 #### 定义 MySQL 连接属性 定义用于连接至 MySQL 数据源所需的参数集合如下所示: ```scala val jdbcUrl = "jdbc:mysql://localhost:3306/database_name" val connectionProperties = new java.util.Properties() connectionProperties.put("user", "your_username") connectionProperties.put("password", "your_password") ``` 这里指定了数据库 URL 及访问凭证以便稍后能够顺利获取所需记录集。 #### 执行查询并将结果转换成 DataFrame 通过指定 SQL 查询语句来提取特定表格中的全部条目作为临时视图处理: ```scala val df = spark.read.jdbc(jdbcUrl, "(SELECT * FROM table_name) AS temp_table", connectionProperties) df.createOrReplaceTempView("temp_view") ``` 这段脚本会把来自关系型数据库管理系统 (RDBMS) 的结构化信息映射成本地内存对象供后续分析使用。 #### 将 DataFrame 写入 Hive 表格 最后一步就是利用 SparkSQL API 把之前准备好的中间件持久化存储于分布式文件系统之上: ```sql spark.sql(""" INSERT INTO TABLE default.target_hive_table SELECT * FROM temp_view """) ``` 以上命令实现了将先前由 MySQL 提供给我们的资料正式迁移到大数据平台内的永久位置中去[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值