SparkSql 采集数据 入库Hive Parquet表 关键部分代码

SparkSession scs = SparkSession.
                         builder().appName("getGbaseWriteHiveJob")
                         .master("local[*]")
                         .enableHiveSupport()
                         .getOrCreate();
         JavaSparkContext sc = new JavaSparkContext(scs.sparkContext());
 try{
             //总资产
             if(fields.getDemo1_date_state().equals("yes")){
                 Optional<List<Demo1>> optional = Optional.ofNullable(demo1Mapper.getDemo1All_Date(datadate_t2));
                 if(optional.isPresent()){
                     log.info(".....开始入库表:"+fields.getDemo1_hive_tb());
                     List<Demo1> listDemo1 = optional.get();
                     JavaRDD<Demo1> demo1 = sc.parallelize(listDemo1,Integer.parseInt(fields.getDemo1_rdd_prnum()));
                     Dataset<Row> dataFrame = scs.createDataFrame(demo1, Demo1.class);
                     dataFrame.createOrReplaceTempView(fields.getDemo1_dfview_name());
                     scs.sql(fields.getHive_db());
                     scs.sql(fields.getDemo1_hive_insert_tb_sql() +"(dt='"+datadate_t2+"') " + fields.getDemo1_dfview_find_sql());
                     log.info(".....入库表:"+fields.getDemo1_hive_tb()+"分区:dt="+datadate_t2+"成功.....");
                     list.add(".....入库表:"+fields.getDemo1_hive_tb()+"分区:dt="+datadate_t2+"成功.....");
                 }else{
                     log.info(".....入库表:"+fields.getDemo1_hive_tb()+"分区:dt="+datadate_t2+"失败获取Gbase集合对象为空.....");
                 }
             }
         }catch (Exception e){
             log.info(".....入库表:"+fields.getDemo1_hive_tb()+"分区:dt="+datadate_t2+"失败:"+e.getMessage());
         }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将SparkSQL读取的数据存入Hive,可以按照以下步骤进行操作: 1. 首先,确保已经正确安装了Java、HadoopSpark、MySQLHive。这样才能顺利进行数据读取和存储的操作。 2. 使用SparkSQL的API连接到MySQL数据,并将MySQL中的数据加载到SparkDataFrame或Dataset中。可以使用以下代码实现连接和加载的过程: ``` import org.apache.spark.sql.SparkSession val spark = SparkSession.builder() .appName("SparkSQL Read MySQL Data") .config("spark.sql.warehouse.dir", "/user/hive/warehouse") .enableHiveSupport() .getOrCreate() val mysqlDF = spark.read .format("jdbc") .option("url", "jdbc:mysql://localhost:3306/database_name") .option("dbtable", "table_name") .option("user", "mysql_username") .option("password", "mysql_password") .load() ``` 在上述代码中,需要替换`database_name`、`table_name`、`mysql_username`和`mysql_password`为实际的MySQL数据信息。 3. 将MySQL中的数据转化为临时,并注册为临时视图。使用以下代码DataFrame或Dataset注册为临时视图: ``` val tmpTableName = "tmp_table" mysqlDF.createOrReplaceTempView(tmpTableName) ``` 在上述代码中,将DataFrame或Dataset注册为名为`tmp_table`的临时视图。 4. 接下来,将临时视图中的数据写入Hive中。使用以下代码数据写入Hive: ``` val hiveTableName = "hive_table" spark.sql(s"INSERT INTO TABLE $hiveTableName SELECT * FROM $tmpTableName") ``` 在上述代码中,将临时视图`tmp_table`中的数据插入到名为`hive_table`的Hive中。 请注意,以上代码只是示例代码,实际操作中需要根据具体情况进行修改和调整。确保MySQLHive的连接信息正确,并且临时Hive的名称与实际情况一致。 这样,就可以通过SparkSQL读取MySQL中的数据,并将数据存入Hive中了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [sparksql连接mysqlhive](https://download.csdn.net/download/py4Ho123/85265696)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [SparkSql实现Mysqlhive数据流动](https://blog.csdn.net/weixin_28697603/article/details/113229660)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值