PySpark大数据分析(3):使用Python操作RDD

使用Python编写Spark代码在Python中使用Spark,首先需要导入PySpark,然后创建一个SparkConf对象配置你的应用,再基于这个SparkConf创建一个SparkContext。以创建一个名为’MyApp’的本地应用为例:from pyspark import SparkConf, SparkContextconf = SparkConf().setMaster('local').setAppName('MyApp')sc = SparkContext(conf=con
摘要由CSDN通过智能技术生成

使用Python编写Spark代码

在Python中使用Spark,首先需要导入PySpark,然后创建一个SparkConf对象配置你的应用,再基于这个SparkConf创建一个SparkContext。以创建一个名为’MyApp’的本地应用为例:

from pyspark import SparkConf, SparkContext


conf = SparkConf().setMaster('local').setAppName('MyApp')
sc = SparkContext(conf=conf)

也可以通过SparkSession实现之前命令行中的PySpark编程,比如找出’Sepal Width’大于3的数据:

from pyspark import SparkConf, SparkContext
from pyspark.sql import SparkSession


conf = SparkConf().setMaster('local').setAppName('MyApp')
sc = SparkContext(conf=conf)
spark = SparkSession(sc)

iris = spark.read.csv('/Users/data/iris.csv', header=True)
iris.filter(iris['Sepal Width'] > 3.0).show(5)

展示结果为:

+------------+-----------+------------+-----------+-----------+
|Sepal Length|Sepal Width|Petal Length|Petal Width|      Label|
+------------+-----------+------------+-----------+-----------+
|         5.1|        3.5|         1.4|        0.2|Iris-setosa|
|         4.7|        3.2|         1.3|        0.2|Iris-setosa|
|         4.6|        3.1|         1.5|        0.2|Iris-setosa|
|         5.0|        3.6|         1.4|        0.2|Iris-setosa|
|         5.4|        3.9|         1.7|        0.4|Iris-setosa|
+------------+-----------+------------+-----------+-----------+
only showing top 5 rows

通过SparkSession读取的数据是以DataFrame的形式存储的,如果想使用RDD需要进行转换:

print(type(iris))
# <class 'pyspark.sql.dataframe.DataFrame'>
rdd = iris.rdd
print(rdd.first())
# Row(Sepal Length='5.1', Sepal Width='3.5', Petal Length='1.4', Petal Width='0.2', Label='Iris-setosa')

向Spark传递函数

像Python中的filter()函数一样,我们可以将一个自定义的函数传递给RDD的filter(),从而让它按照我们定义的方式进行过滤。当函数比较简单时,可以使用匿名函数lambda传递;

from pyspark import</
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值