idea环境下创建SparkSQL
·
1、创建Maven项目
1、首先创建一个Maven项目


2、添加scala SDK
Scala代码的编写需要依赖JDK,在创建Maven工程的时候,首先便需要指定JDK。
因此为了后续创建Spark项目(正如上面所说,一方面是Scala本身需要依赖JDK,另一方面用来管理项目构建的Maven,其创建也需要依赖JDK)的时候不用每次都去配置JDK,这里先进行一次全局配置。首先在欢迎界面点击Configure,然后点击Plugins:




3、修改pom.xml,加入以下内容,并进行导入
<dependencies>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.12</artifactId>
<version>3.0.1</version>
</dependency>
</dependencies>

2、将Scala的框架添加到这个项目中


3、修改pom.xml,加入以下内容
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.12</artifactId>
<version>3.0.1</version>
</dependency>

要点右上角有个按钮,等它加载一会,如下图的按钮:

4、创建scala文件目录。
在main目录下创建scala目录

输入文件目录名:scala
将scala目录标记为源代码根目录
此时如果发现没有scala类

我是在pom.xml里面加了以下代码,加在dependence后面,也可以在添加一次框架,看看scala有没有勾上
<build>
<!-- 指定 Scala 源码目录 -->
<sourceDirectory>src/main/scala</sourceDirectory>
<!-- <testSourceDirectory>src/test/scala</testSourceDirectory>-->
<plugins>
<!-- Scala 编译插件:关键!让 Maven 支持 Scala -->
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>scala-maven-plugin</artifactId>
<version>4.8.1</version>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
<!-- <configuration>-->
<!-- <scalaVersion>${scala.version}</scalaVersion>-->
<!-- </configuration>-->
</plugin>
<!-- 确保编译时包含 Scala 类 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<executions>
<!-- 跳过默认的编译,由 scala-maven-plugin 处理 -->
<execution>
<id>default-compile</id>
<phase>none</phase>
</execution>
<execution>
<id>compile</id>
<phase>compile</phase>
<goals>
<goal>compile</goal>
</goals>
</execution>
</executions>
<configuration>
<source>8</source>
<target>8</target>
</configuration>
</plugin>
</plugins>
</build>
然后就能出现了:

5、创建scala类。

6、编写程序代码。
文件peoplejson内的数据是:
{"name":"Michael"}
{"name":"Andy", "age":30}
{"name":"Justin", "age":19}
文件放这里:

在SparkSQLFirst里面写:
import org.apache.spark.sql.SparkSession
object SparkSQLFirst {
def main(args: Array[String]): Unit = {
// 创建spark Session对象
val spark = SparkSession.builder()
.master("local")
.appName("app")
.getOrCreate()
//spark所有隐式转换
//内部类是属于外部类对象的
import spark.implicits._
//读文件
val inputDF=spark.read.json("datas/people.json")
//输出inputDF类型
println(inputDF.getClass)
//输出inputDF
inputDF.show(30)
// 将DataFrame保存成csv文件
inputDF.write.csv("datas/peoplewrite.csv")
}
}
7、运行程序。

感觉警告太多,在src/resources里面创建了一个文件:log4j.properties

往里面写:
# ???????? WARN???? WARN ? ERROR ??
log4j.rootLogger=WARN, console
# ???????
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.target=System.out
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n
# ?? Spark ???? INFO ??
log4j.logger.org.apache.spark=WARN
log4j.logger.org.apache.spark.scheduler=WARN
log4j.logger.org.apache.spark.executor=WARN
log4j.logger.org.apache.spark.network=WARN
log4j.logger.org.apache.hadoop=WARN
log4j.logger.io.netty=WARN
# ??????????
log4j.logger.your.package.name=INFO
就能:

更多推荐
所有评论(0)