Spark文档总结

2020-04-04  本文已影响0人  舒也ella

1. RDD编程

初始化

val conf = new SparkConf().setAppName(appName).setMaster(master)
new SparkContext(conf)

RDD可以由Hadoop文件系统(hdfs://)、本地文件、Amazon S3(s3a://)等创建或者使用sc.parallelize()直接存放内存,例如scala的driver程序的collection中。

val distFile = sc.textFile("data.txt")

SparkContext.textFile可以读入表达式或目录, 但SparkContext.wholeTextFiles读入目录会针对每个文件返回 (filename, content)

val data = Array(1, 2, 3, 4, 5)
val distData = sc.parallelize(data)

常用算子:
Transformation
lazy执行,生成新的RDD

Action
| reduce(func) | 返回一个由func函数的逻辑聚集后形成的 RDD |
| collect() | 返回dataset的元素到driver|
| count() | 返回dataset元素个数 |
| first() | 返回dataset第一个元素 (similar to take(1)). |
| take(n) | 返回dataset前n个元素 |
| saveAsTextFile(path) | 本地或hdfs存储dataset |
| countByKey() | 仅适合pairRDDs of type (K, V) |
| foreach(func) | 对dataset中每个元素执行func,通常用于更新Accumulator 或者和外部存储交互|

持久化
共享变量
broadcast
累加器

2. Spark SQL

支持hive查询

import org.apache.spark.sql.SparkSession

val spark = SparkSession
  .builder()
  .appName("Spark SQL basic example")
  .config("spark.some.config.option", "some-value")
  .getOrCreate()

// For implicit conversions like converting RDDs to DataFrames
import spark.implicits._

spark.sql(string sql command)返回dataframe

常见问题

上一篇 下一篇

猜你喜欢

热点阅读