spark sql 因为引用变量日期没有加引号,导致没有读取到数据

spark sql 因为引用变量日期没有加引号,导致没有读取到数据
在这里插入图片描述

任务描述 相关知识 数据SQL 语句数据 文件保存 保存模式 持久化存储到 Hive 分区与排序 编程要求 测试说明 任务描述 本关任务:根据编程要求,编写 Spark 程序读取指定数据源,完成任务。 相关知识 为了完成本关任务,你需要掌握: 数据载; SQL 语句数据; 文件保存; 保存模式; 持久化存储到 Hive; 分区与排序。 数据载 在 Spark SQL 中使用 DataFrameReader 接口来读取外部存储文件,直接调用由 SparkSession 创建的对象来调用接口提供的 read 方法来完成数据载,读取后生成的对象是一个 DataFrame 格式的数据集。 读取示例: spark.read.load(file_path) 但是要注意的是,Spark SQL 读取的默认数据源格式为 Parquet 文件格式,可以通过修改配置项 spark.sql.sources.default 来更改读取的默认数据源格式。 当读取数据源并非默认的 Parquet 格式时,则需要手动指定它的数据源格式。在 Spark SQL 中提供了各类文件载的方法,如:json, jdbc, csv, text 等,直接调用对应的方法即可完成指定文件格式的读取读取示例: spark.read.json(file_path) 我们也可以调用 createOrReplaceTempView(viewName: String) 方法将读取数据创建为一个临时注册表,直接编写使用 SQL 语句对数据进行相关操作。 创建示例: spark.read.json(file_path).createOrReplaceTempView(data) spark.sql("select * from data") SQL 语句数据Spark SQL 中除了使用 DataFrameReader 接口来读取外部存储文件,还可以使用 Sql 语句直接将文件载到 DataFrame 中并进行查询。 读取示例: spark.sql("select * from json.`file path`") 注意文件路径要使用英文反引号 `` 包起来。 文件保存 在 Spark SQL 中使用 DataFrameWriter 接口来保存文件,直接调用由 SparkSession 创建的对象来调用接口提供的 write 方法来完成数据保存,保存后会生成一个文件夹。 保存示例: dataFrame.write.save(path) 保存后会生成一个文件夹,其中的文件如下图所示: 保存模式 在 Spark SQL 中提供了四种保存模式,用于设置保存时执行的操作,直接调用 DataFrameWriter 接口提供的 .write.mode() 方法来实现,详细参数如下表: 参数 含义 SaveMode.ErrorIfExists(默认) 保存的数据如果存在,则会抛出异常。 SaveMode.Append 采用追的方式保存数据。 SaveMode.Overwrite 采用覆盖的方式保存数据。 SaveMode.Ignore 保存的数据如果存在,则忽略,不做任何操作 保存示例: dataFrame.write.mode(SaveMode.Append).save(path) 持久化存储到 Hive 在 Spark SQL 中提供了 saveAsTable() 方法将数据持久化存储到 Hive 数据库中,但是要注意,使用该方法时需要先部署好 Hive 的相关集群环境,否则无法使用。Spark 会创建一个默认的本地 Hive 数据库,默认使用 Derby 作为元数据库。 保存示例: dataFrame.write.saveAsTable() 分区与排序 分区与排序常常用于文件的输出操作,也就是文件的保存操作,在 Spark SQL 中提供了 repartition(int n)方法用于设置分区,sort(sortCol: String, sortCols: String*) 或 orderBy(sortCol: String, sortCols: String*) 方法用于设置排序,默认为升序。 分区示例: dataFrame.repartition(2) 排序示例: // 升序 dataFrame.orderBy("age") // 降序 dataFrame.orderBy(dataFrame.col("age").desc) 编程要求 打开右侧代码文件窗口,在 Begin 至 End 区域补充代码,完善程序。读取本地文件 file:///data/bigfiles/demo.json,根据年龄字段 age 设置降序,输出结果。 demo.json 文件内容如下所示: {"name": "zhangsan", "age": 20, "sex": "m"}, {"name": "lisi", "age": 21, "sex": "m"}, {"name": "tiantian", "age": 22, "sex": "f"}, {"name": "lihua", "age": 23, "sex": "f"}, {"name": "zhaoliu", "age": 24, "sex": "m"}, {"name": "liguanqing", "age": 25, "sex": "f"}, {"name": "zhangqi", "age": 26, "sex": "m"}, {"name": "zhaoai", "age": 27, "sex": "m"}, {"name": "wangjiu", "age": 28, "sex": "f"} 开始任务前,注意先启动 Hadoop 与 Hive 环境:start-all.sh、nohup hive --service metastore &
03-18
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值