spark编程python实例

spark编程python实例

ValueError: Cannot run multiple SparkContexts at once; existing SparkContext(app=PySparkShell, master=local[])

1.pyspark在jupyter notebook中开发,测试,提交

1.1.启动

IPYTHON_OPTS="notebook" /opt/spark/bin/pyspark

下载应用,将应用下载为.py文件(默认notebook后缀是.ipynb)

在shell中提交应用

wxl@wxl-pc:/opt/spark/bin$ spark-submit /bin/spark-submit /home/wxl/Downloads/pysparkdemo.py

!

3.遇到的错误及解决

ValueError: Cannot run multiple SparkContexts at once; existing SparkContext(app=PySparkShell, master=local[*]) d*

3.1.错误

ValueError: Cannot run multiple SparkContexts at once; existing SparkContext(app=PySparkShell, master=local[*]) d*

ValueError: Cannot run multiple SparkContexts at once; existing SparkContext(app=PySparkShell, master=local[*]) created by <module> at /usr/local/lib/python2.7/dist-packages/IPython/utils/py3compat.py:288

3.2.解决,成功运行

在from之后添加

try:
    sc.stop()
except:
    pass
sc=SparkContext('local[2]','First Spark App')

贴上错误解决方法来源StackOverFlow

4.源码

pysparkdemo.ipynb

{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from pyspark import SparkContext"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "try:\n",
    "    sc.stop()\n",
    "except:\n",
    "    pass\n",
    "sc=SparkContext('local[2]','First Spark App')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "data = sc.textFile(\"data/UserPurchaseHistory.csv\").map(lambda line: line.split(\",\")).map(lambda record: (record[0], record[1], record[2]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false,
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Total purchases: 5\n"
     ]
    }
   ],
   "source": [
    "numPurchases = data.count()\n",
    "print \"Total purchases: %d\" % numPurchases"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}

pysparkdemo.py

# coding: utf-8

# In[1]:

from pyspark import SparkContext


# In[2]:

try:
    sc.stop()
except:
    pass
sc=SparkContext('local[2]','First Spark App')


# In[3]:

data = sc.textFile("data/UserPurchaseHistory.csv").map(lambda line: line.split(",")).map(lambda record: (record[0], record[1], record[2]))


# In[4]:

numPurchases = data.count()
print "Total purchases: %d" % numPurchases


# In[ ]:

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Hadoop实操

如何使用Hue创建Spark1和Spark2的Oozie工作流

使用Hue可以方便的通过界面制定Oozie的工作流,支持Hive、Pig、Spark、Java、Sqoop、MapReduce、Shell等等。Spark?那能...

1.9K7
来自专栏张浩的专栏

Hive CLI常用命令

291
来自专栏Hadoop实操

如何使用R连接Hive与Impala

继之前的文章讲述如何在Redhat中配置R环境和如何在Redhat中安装R的包及搭建R的私有源后,那我们如何使用R连接CDH集群中的Hive和Impala进行数...

4626
来自专栏岑玉海

Kettle 添加对应hadoop版本的支持

  在hdp的官网上有一个ETL工具叫做Talend Open Studio,然后我就下了,并且在群里询问了一下,突然间冒出来一群ETL高手,经高人指点认识了一...

4197
来自专栏Hadoop实操

Impala的Short-Circuit Reads

我们知道读取HDFS的数据需要通过DataNode。当客户端找DataNode读取数据时,DataNode会首先从磁盘中读取文件,然后通过TCP socket将...

4818
来自专栏Albert陈凯

Mac在Hadoop的yarn上运行mapreduce报错ExitCodeException exitCode=127:

hadoop 2.7.2 17/04/14 14:07:00 INFO mapreduce.Job: Job job_1492146520853_0005 r...

2674
来自专栏Hadoop实操

如何使用hadoop命令向CDH集群提交MapReduce作业

在前面文章Fayson讲过《如何跨平台在本地开发环境提交MapReduce作业到CDH集群》,那对于部分用户来说,需要将打包好的jar包在CDH集群运行,可以使...

4416
来自专栏Hadoop实操

如何使用Cloudera Manager禁用YARN的HA

前面Fayson写过《如何使用Cloudera Manager启用YARN的HA》。本篇文章主要讲述如何使用Cloudera Manager禁用YARN的HA。

3265
来自专栏Hadoop实操

非Kerberos环境下Hive2.2.0 On Tez集成

在前面的文章《如何在CDH集群中安装Hive2.3.3》、《如何为Hive2启用Kerberos认证》及《Hive2.2.0如何与CDH集群中的Spark1.6...

1282
来自专栏Hadoop实操

如何使用Hue通过数据文件创建Collections

在CDH5.9版本及更新版本中,Hue新增一个全新工具从数据文件中创建Apache Solr的Collections,可以通过该工具轻松的将数据加载到Solr的...

3526

扫码关注云+社区