pyspark学习系列(一)创建RDD

由于个人工作需要spark,然后我有事一个编码门外汉,数据分析出身,除了学习了简单的sql,那么目前本人掌握的语言也就是python(JAVA教程看了一周放弃了),用python学习机器学习,然后在项目中实践了部分内容,现在想把项目搬到集群上去,所以要学习spark,但是发现网上关于pyspark的教程真的是太少了,本系列讲以《pyspark实战指南》为基础,详细介绍本人学习pyspark过程中的点滴。

闲话不说了,开始

1,安装部署spark,具体就不说了 网上一大片,即使不会也没关系,有运维支持呐 ,不会的就直接找运维帮忙

2,开启spark,进入pyspark

这里说一下由于个人电脑装了是spark2.2,然后单位集群装了2.0,个人的一台服务器上传状态了1.6,所以一下代码难免会出现混淆的时候,我尽量做到标注。。。。我也是菜鸟 有错误请大家指出 共同进步

一、创建RDD

在pyspark中创建RDD有两种方法,一种是并行化一个列表,或者直接读取文件

但是所有工作的前提是初始化你的SparkSession,

spark2将SparkConf、SparkConText、SQLContext和HiveContext和StreamingContext进行了组合

import pandas as pd
from pyspark.sql import SparkSession
from pyspark import SparkContext
from pyspark.sql import SQLContext
from pyspark.sql.types import *
spark=SparkSession.builder.appName("lz").getOrCreate()
sc = SparkContext.getOrCreate()
'''
SPARK1的写法如下
conf = SparkConf().setMaster("local[10]").setAppName("PySparkShell")
sc = SparkContext.getOrCreate()
sqlContest = SQLContext(sc)
'''

a,并行化一个集合
data = sc.parallelize(
    [('Amber', 22), ('Alfred', 23), ('Skye',4), ('Albert', 12), 
     ('Amber', 9)])
b,读取文件
data_from_file = sc.\
    textFile(
        '/Users/drabast/Documents/PySpark_Data/VS14MORT.txt.gz', 
        4)

RDD创建好之后,我如果想查看里面内容如何操作:

比如在之前序列化了一个data

如果是在python中那么我们直接输入data 那么这数据就呈现出来了,在pyspark中是什么样子?


如何展现?

1)小数据量的情况加,可以直接将分布式的RDD通过转换函数collect()转换成成一个数组




2)如果是大数据量的rdd,那么我们可以用take( n)来选取n个数据查看


二、RDD转换sparkDataFrame

我们知道python的DataFrame是一个数据框,其实spark的DataFrame也是这么一个概念

RDD是无schema的数据结构

DataFrame是有schema的数据结构

RDD想转换成DataFrame就是在RDD基础上加上schema,如果没有提前定义好schema的名称,转化过程中默认schema为:_1,_2,_3

RDD转换成DataFrame:

data1 = spark.createDataFrame(data)

data2 = sqlContest.createDataFrame(data)

同样 dataframe也可以转换成rdd: rdd.map(lambda x: -----)



猜你喜欢

转载自blog.csdn.net/qq_36603091/article/details/79588072