IDEA使用sparkSQL方式操作Hudi

环境与依赖

对表进行操作

打包提交集群运行


环境与依赖

添加依赖:



        
        
            org.apache.spark
            spark-core_2.12
            3.2.2
        

        
        
            org.apache.spark
            spark-sql_2.12
            3.2.2
        

        
            org.apache.spark
            spark-hive_2.12
            3.2.2
        

        
            org.apache.hive
            hive-exec
            1.2.1
        

        
            mysql
            mysql-connector-java
            5.1.27
        

        
            org.codehaus.janino
            janino
            3.0.12
        

        
        
            org.apache.hadoop
            hadoop-client
            3.3.4
        

        
        
            org.apache.hudi
            hudi-spark3.2-bundle_2.12
            0.12.0
        

    

    
        

            
            
                org.apache.maven.plugins
                maven-assembly-plugin
                3.0.0
                
                    
                        make-assembly
                        package
                        
                            single
                        
                        
                            
                                
                                    true
                                    com.example.MainClass
                                
                            
                            
                                jar-with-dependencies
                            
                        
                    
                
            

            
            
                net.alchim31.maven
                scala-maven-plugin
                3.2.2
                
                    
                        
                            compile
                            testCompile
                        
                    
                
            
        
    

对表进行操作

        默认情况下,如果提供了preCombineKey,则insert into的写操作类型为upsert,否则使用insert。

向非分区表插入数据

def main(args: Array[String]): Unit = {
    //添加hdfs用户名
    System.setProperty("HADOOP_USER_NAME", "root")

    //创建SparkConf对象
    val sparkConf: SparkConf = new SparkConf()
      .setAppName("onHudi")
      .setMaster("local[*]")
      .set("spark.serializer", "org.apache.spark.serializer.KryoSerializer")
      .set("spark.sql.catalog.spark_catalog","org.apache.spark.sql.hudi.catalog.HoodieCatalog")
      .set("spark.sql.extensions","org.apache.spark.sql.hudi.HoodieSparkSessionExtension")

    //创建SparkSession对象
    val spark: SparkSession = SparkSession
      .builder()
      .config(sparkConf)
      .enableHiveSupport()
      .getOrCreate()

    spark.sql("insert into spark_hudi.hudi_cow_nonpcf_tbl select 3, 'a1', 20")
    spark.sql("select * from spark_hudi.hudi_cow_nonpcf_tbl where uuid = 3").show

    spark.close()
  }

IDEA使用sparkSQL方式操作Hudi_第1张图片 

      其实看到这里大家应该也明白了,其实具体操作也都sql一样。如有需要执行的逻辑sql语句就在其中执行就可以了。

具体操作hudi的sql语句在上一篇博客中也有的:点击链接SQL方式对hudi表进行操作_open_test01的博客-CSDN博客

 

打包提交集群运行

        添加maven打包依赖

            
                org.apache.maven.plugins
                maven-jar-plugin
                
                    
                        
                            true
                            false
                            lib/
                        
                    
                
            

IDEA使用sparkSQL方式操作Hudi_第2张图片

        点击打包操作 

IDEA使用sparkSQL方式操作Hudi_第3张图片        打包完成

IDEA使用sparkSQL方式操作Hudi_第4张图片

         提交运行

spark-submit \
--class spark_hudi.hudi \
/opt/jars/sparks-1.0-SNAPSHOT.jar

IDEA使用sparkSQL方式操作Hudi_第5张图片

IDEA使用sparkSQL方式操作Hudi_第6张图片

你可能感兴趣的:(Hudi,intellij-idea,大数据,hive)