目录
- 一、Spark SQL支持的外部数据源
- 二、Spark SQL —> CSV
- 三、Spark SQL —> JSON
- 四、Spark SQL —> Parquet
- 五、Spark SQL —>Hive
- 六、Spark SQL —>MySQL
一、Spark SQL支持的外部数据源
Spark SQL开放了一系列接入外部数据源的接口,来让开发者可以实现Spark SQL可以加载任何地方的数据,例如mysql,hive,hdfs,hbase等,而且支持很多种格式如json, parquet, avro, csv格式…
- Spark SQL的DataFrame接口支持多种数据源的操作。一个DataFrame可以进行RDDs方式的操作,也可以被注册为临时表。把DataFrame注册为临时表之后,就可以对该DataFrame执行SQL查询。
二、Spark SQL —> CSV
2.1 读CSV文件
a.有列名
e.g.
package cn.kgc.spark.Test
import org.apache.spark.rdd.RDD
import org.apache.spark.sql.SparkSession
import org.apache.spark.{SparkConf, SparkContext}
object Demo_LoadCSVFile {
def main(args: Array[String]): Unit = {
val conf = new SparkConf().setAppName(this.getClass.getName).setMaster("local[4]")
val sc = new SparkContext(conf)
val customer = sc.textFile("data/customer_details.csv")
customer.map(x=>(x.split(",")))
//创建SparkSession
//通过SparkSession加载csc/json文件
val spark = SparkSession.builder().config(conf).getOrCreate()
//加载csv文件
// .option("header",true)判断文件中的第一行是否为列的名称
val df = spark.read.format("csv").option("header",true).load("data/customer_details.csv")
df.show()
df.printSchema()
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
result:
"C:\Program Files\Java\jdk1.8.0_231\bin\java.exe" ...
2021-01-09 13:01:07,596 WARN [org.apache.spark.SparkContext] - Using an existing SparkContext; some configuration may not take effect.
+-----------+----------+-----------+--------------------+------+--------------------+-------+---------+--------------------+--------------------+--------------------+
|customer_id|first_name| last_name| email|gender| address|country| language| job| credit_type| credit_no|
+-----------+----------+-----------+--------------------+------+--------------------+-------+---------+--------------------+--------------------+--------------------+
| 1| Spencer| Raffeorty|sraffeorty0@dropb...| Male| 9274 Lyons Court| China| Khmer|Safety Technician...| jcb| 3589373385487660 |
| 2| Cherye| Poynor| cpoyn