前言
今天有时间,将自己的笔记分享出来,方便同僚查阅。不断详细与更新中。为了方便,例子都是以Python写的,后续也会有其他语言的版本。
创建编程入口
SparkContext入口
from pyspark import SparkConf, SparkContext
if __name__ == '__main__':
conf = SparkConf().setAppName("test").setMaster("local")
sc = SparkContext(conf=conf)
rdd1 = sc.parallelize([1, 2, 3, 4, 5])
rdd2 = rdd1.map(lambda x: x + 1)
print(rdd2.collect())
SparkSession入口
from pyspark.sql import SparkSession, DataFrame
if __name__ == '__main__':
spark: SparkSession = SparkSession.builder
.appName('test')
.master('local')
.enableHiveSupport()
.getOrCreate()
# 创建list的list
lists = [['a', 1], ['b', 2]]
# 构建具有默认生成的列_1、_2的DataFrame
dataframe: DataFrame = spark.createDataFrame(lists)
dataframe.show()
SparkConext和SparkSession的关系
context是session的一个属性
spark: SparkSession = SparkSession.builder.appName('test').master('local').enableHiveSupport().getOrCreate()
sc: SparkContext = spark.sparkContext
DataFrame和RDD的关系
DataFrame是严格的表格关系
RDD是相对松散的关系(其中pairRDD稍微严格一点, 所以有一些特殊的操作)
RDD转dataFrame
dataframe = spark.createDataFrame(rdd, schema=None, samplingRatio=None)
dataFrame转RDD
dataframe = spark.createDataFrame([Row(col1='a', col2=1), Row(col1='b', col2=2)])
rdd = dataframe.rdd
SparkStreaming入口
spark = SparkSession.builder.appName('test').master('local[*]').getOrCreate()
ss = StreamingContext(spark.sparkContext, 10)
refbit
发布了6 篇原创文章 · 获赞 0 · 访问量 140
私信
关注