Spark介绍(七)PySpark

一、PySpark简介

    PySpark 是 Spark 为 Python 开发者提供的 API ,位于 $SPARK_HOME/bin 目录,其依赖于 Py4J

   Spark2.0之后的初始化,会在spark安装pyspark的模块,直接在spark/bin/启动pyspark是会报错的:

  

原因是因为spark2.0默认安装的Python是3.6的,而“Spark <= 2.1.0 is not compatible with Python 3.6”,需要安装Python3.5,如果是anaconda,直接把版本切换到3.5就行了:

conda create -n py35 python=3.5

然后在启动pyspark的时候,先启动3.5版本的Python虚拟环境,然后再运行pyspark,就能初始化pyspark了

source activate py35
pyspark

PySpark操作DataFrame

    具体操作例子可以见官方的例子,python操作sparksql,还有详细API可以参见pyspark.sql

    比如从MySQL数据库中读取数据,生成DataFrame:

url = "jdbc:mysql://127.0.0.1:3306/databaseName?useSSL=false"
driver = "com.mysql.jdbc.Driver"

df = spark.read \
    .format("jdbc") \
    .option("url", url).option("driver", driver).option("user", user).option("password",password) \
    .option("dbtable", "schema.table_name") \
    .load()

df.printSchema()
df.show()

PySpark脚本运行

    对于不是从spark/bin/pyspark启动的环境,需要在Python脚本中增加

from pyspark.sql import SparkSession

spark = SparkSession \
    .builder \
    .appName("PySparkAppName") \
    .getOrCreate()

在shell中执行时可以这样写,这样就可以将python写的spark程序提交到yarn中:

sudo -u hdfs bin/spark-submit --master yarn-client --jars $SPARK_HOME/jars/mysql-connector-java-5.1.44.jar /tmp/脚本名称.py

注:由于作者的环境是CDH,权限分明,执行spark时需要将用户切换到hdfs才能操作HDFS上的文件,同时例子有用到mysql,需要增加mysql的依赖包,其他类似。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值