首页 > 数据库 >SparkSQL in Java

SparkSQL in Java

时间:2024-01-14 13:22:39浏览次数:30  
标签:Java show appender SparkSQL apache org spark log4j

参考地址:Starting Point: SparkSession

1.新建Maven项目,POM引入依赖

    <dependencies>
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-core_2.13</artifactId>
            <version>3.5.0</version>
        </dependency>

        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-sql_2.13</artifactId>
            <version>3.5.0</version>
        </dependency>

        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>2.16.1</version>
        </dependency>

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-reload4j</artifactId>
            <version>2.0.9</version>
        </dependency>
    </dependencies>

2.项目添加Scala依赖库

image

3.在资源目录添加日志配置文件log4j.properties

log4j.rootLogger=INFO, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
log4j.appender.logfile=org.apache.log4j.FileAppender
log4j.appender.logfile.File=target/spring.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n

4.添加相关测试数据文件

{"username": "fanqi","age": 24}
{"username": "admin","age": 0}
{"username": "root","age": 100}

5.添加相关代码文件

package cn.coreqi;

import static org.apache.spark.sql.functions.col;
import org.apache.spark.SparkConf;
import org.apache.spark.sql.*;

import java.util.Arrays;


public class Main {
    public static void main(String[] args) {
        // 创建SparkConf对象
        SparkConf sparkConf = new SparkConf()
                .setMaster("local[*]")
                .setAppName("sparkSql");

        SparkSession spark = SparkSession
                .builder()
                .config(sparkConf)
                .getOrCreate();

        Dataset<Row> df = spark.read().json("datas/user.json");
        df.show();

        // DataFrames => SQL
        df.createOrReplaceTempView("user");
        spark.sql("select * from user").show();
        spark.sql("select avg(age) from user").show();

        // DataFrames => DSL
        df.select("age","username").show();
        df.select(col("age").plus(1)).show();


        // DataFrames是特定泛型的 Dataset
        // Dataset
        Encoder<Integer> intEncoder = Encoders.INT();
        Dataset<Integer> ds = spark.createDataset(Arrays.asList(1, 2, 3), intEncoder);
        ds.show();
        
        // 关闭
        spark.close();
    }
}

标签:Java,show,appender,SparkSQL,apache,org,spark,log4j
From: https://www.cnblogs.com/fanqisoft/p/17963588

相关文章

  • Java小细节之循环标号
    importjava.util.Scanner;publicclassMain{publicstaticvoidmain(String[]args){Scannerin=newScanner(System.in);intn=in.nextInt();out:for(inti=0;i<=n;i++){for(intj=0;j<=n/2;j++){for(intz=0;z<=n/5;z++){if(i+j......
  • 第一章:Java语言概述
    1.注释注释的类型:单行注释多行注释文档注释注释的作用:提高了程序的可阅读性用于调试程序的重要方法2.Java核心机制:JVM优点:跨平台性面向对象性健壮性安全性高简单性高性能缺点:语法过于复杂严谨一般适用于大型网站开发,维护成本高并非适用于所有领域2......
  • 开始学习Java - Day1
    学习Java目标掌握一门编程语言可以看懂代码,具备编程能力。WhyJava(vspython)相比较Python,更原生态,更灵活。(Python只是上手简单,仅此而已)Java封装好了,调用是一样的学完Java,再学习其他语言,会更快一些。如PHP,Python具体解决问题,底层更多的是看算法学习方法写代码......
  • 详解Java之Spring框架中事务管理的艺术
    第1章:引言大家好,我是小黑,咱们今天聊聊Spring框架中的事务管理。不管是开发小型应用还是大型企业级应用,事务管理都是个不可避免的话题。那么,为什么事务管理这么重要呢?假设在银行系统中转账时,钱从A账户扣了,但没到B账户,这种情况就是事务管理处理不当的后果。显然,我们需要一种机制来......
  • JavaImprove--Lesson06--正则表达式
    一.正则表达式的入门正则表达式是一些特定支付组成的,代表一个规则,简化代码,以字符的形式体现规则正则表达式,又称规则表达式,(RegularExpression,在代码中常简写为regex、regexp或RE),是一种文本模式,包括普通字符(例如,a到z之间的字母)和特殊字符(称为"元字符"),是计算机科学的一个概念。......
  • 大型JAVAEE医疗 项目介绍
    一项目介绍1简介云医疗项目属于微医云医疗技术部组建的项目,目前微医全科已开业八家,专注于为个人、家庭和企业提供预防、诊断、治疗、康复,高端体检等一站式的健康维护和医疗服务,打造中国医疗界的"星巴克",未来,微医全科高品质的健康医疗服务基地将继续在全国各地开枝散叶。云医疗......
  • Java多线程编程实战指南(设计模式篇)PDF
    随着CPU多核时代的到来,多线程编程在充分利用计算资源、提高软件服务质量方面扮演了越来越重要的角色。而解决多线程编程中频繁出现的普遍问题可以借鉴设计模式所提供的现成解决方案。然而,多线程编程相关的设计模式书籍多采用C++作为描述语言,且书中所举的例子多与应用开发人员的......
  • Java多线程编程实战指南(核心篇)PDF
    随着现代处理器的生产工艺从提升处理器主频频率转向多核化,即在一块芯片上集成多个处理器内核(Core),多核处理器(MulticoreProcessor)离我们越来越近了——如今就连智能手机这样的消费类设备都已配备了4核乃至8核的处理器,更何况商用系统!在此背景下,以往靠单个处理器自身处理能力的提升......
  • Java多线程编程实战指南(核心篇)PDF
    随着现代处理器的生产工艺从提升处理器主频频率转向多核化,即在一块芯片上集成多个处理器内核(Core),多核处理器(MulticoreProcessor)离我们越来越近了——如今就连智能手机这样的消费类设备都已配备了4核乃至8核的处理器,更何况商用系统!在此背景下,以往靠单个处理器自身处理能力的提升所......
  • 多线程(Java.Thread)学习
    多线程(Java.Thread)学习线程简介:1、线程是独立执行的路径2、程序运行时有很多后台进程比如主线程、young.gc、full.gc()3、main是主线程,系统入口,用于执行整个程序4、一个进程中、如果开辟多个线程,线程的运行由调度器安排调度、调度器的先后顺序不能人为干预5、对同一份资......