spark

对hive表操作

spark-shell 进入界面

spark.sql("").show -----sql 语句

spark.table("").show 查看表

spark.sql("select guid,count(1) as num from phonec group by guid").show

image-20230308202850200

spark.sql("select guid,count(1) as num from phonec group by guid").filter("guid is not null").show

image-20230308203051032

spark.sql("select guid,count(1) as num from phonec group by guid").filter("guid is not null").write.saveAsTable("hive_table_1");

image-20230308203313712

 

然后再通过hive再把表导出即可

 

DataFream

import org.apache.hadoop.shaded.org.eclipse.jetty.websocket.common.frames.DataFrame;
import org.apache.spark.sql.Dataset;
import org.apache.spark.sql.Row;
import org.apache.spark.sql.SparkSession;


public class TopN {
  public static void main(String[] args) {
      var spark = SparkSession.builder().appName("TopN").master("local[2]").getOrCreate();

      Dataset<Row> accessDF = spark.read().
              format("csv").
              option("header","true").
              option("encoding","utf-8").
              load("E:\\333.csv");

      //输出结构信息
      accessDF.printSchema();

      //创建一个视图
      accessDF.createOrReplaceTempView("people");

      Dataset<Row> sqlDF = spark.sql("SELECT * FROM people");

      //输出内容信息 默认20条
      sqlDF.select(sqlDF.col("id"),sqlDF.col("差评率")).show();

      //查询某列
      accessDF.select("id","好评率").show();

      //查询所有
      accessDF.show(false);


      System.out.println("-------------------");
      viodeAccess(spark,accessDF);

      spark.stop();
      //下一步连接数据库 然后把数据写到数据库中 然后数据库提取
      //还有一个就是打包成jar 然后写 怎么写
       

  }

  /**
    *
    * @param sparkSession
    * @param dataFrame
    */
  public static void viodeAccess(SparkSession sparkSession, Dataset dataFrame)
  {
      dataFrame.createOrReplaceTempView("person");

      Dataset<Row> sql = sparkSession.sql("select * from person where id = '17118937440'");

      sql.show();
  }
}
posted @   爽爽子的秃头生活  阅读(23)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
历史上的今天:
2022-03-09 用户登录
点击右上角即可分享
微信分享提示