我最近在我的服务器上使用PySpark与Ipython一起使用24个CPU和32GB RAM.它只能在一台机器上运行.在我的过程中,我想收集大量数据,如下面的代码所示:
train_dataRDD = (train.map(lambda x:getTagsAndText(x))
.filter(lambda x:x[-1]!=[])
.flatMap(lambda (x,text,tags): [(tag,(x,text)) for tag in tags])
.groupByKey()
.mapValues(list))
Run Code Online (Sandbox Code Playgroud)
当我做
training_data = train_dataRDD.collectAsMap()
Run Code Online (Sandbox Code Playgroud)
它给了我outOfMemory错误.Java heap Space.此外,我在此错误后无法对Spark执行任何操作,因为它失去了与Java的连接.它给出了Py4JNetworkError: Cannot connect to the java server.
看起来堆空间很小.如何将其设置为更大的限制?
编辑:
我在跑步之前尝试过的事情:
sc._conf.set('spark.executor.memory','32g').set('spark.driver.memory','32g').set('spark.driver.maxResultsSize','0')
我按照此处的文档更改了spark选项(如果你执行ctrl-f并搜索spark.executor.extraJavaOptions):http://spark.apache.org/docs/1.2.1/configuration.html
它说我可以通过设置spark.executor.memory选项来避免OOM.我做了同样的事情,但似乎没有工作.
我想加载IPython shell(不是IPython笔记本),我可以通过命令行使用PySpark.那可能吗?我安装了Spark-1.4.1.
我想构建一个简单的webapp作为我学习活动的一部分.Webapp应该要求用户输入他们的email_id,如果遇到第一次访问者,它会通过cookie记住用户并自动登录他/她以执行这些功能.
这是我第一次创建基于用户的Web应用程序.我脑子里有一个蓝图,但我无法弄清楚如何实现它.主要是我对收集用户cookie的方式感到困惑.我已经研究了各种教程和flask_login,但我认为与flask_login实现的相比,我想实现的内容要简单得多.
我也试过使用flask.session但是有点难以理解,最终我的实现有缺陷.
这是我到目前为止(它是基本的,用于传达我的用例):
from flask import render_template, request, redirect, url_for
@app.route("/", methods= ["GET"])
def first_page():
cookie = response.headers['cookie']
if database.lookup(cookie):
user = database.get(cookie) # it returns user_email related to that cookie id
else:
return redirect_url(url_for('login'))
data = generateSomeData() # some function
return redirect(url_for('do_that'), user_id, data, stats)
@app.route('/do_that', methods =['GET'])
def do_that(user_id):
return render_template('interface.html', user_id, stats,data) # it uses Jinja template
@app.route('/submit', methods =["GET"])
def submit():
# i want to get all the information here
user_id = request.form['user_id']# …Run Code Online (Sandbox Code Playgroud) 我试图运行pip install tsnepython2.7并继续得到相同的错误.我按照http://bickson.blogspot.com/2011/02/installing-blaslapackitpp-on-amaon-ec2.html上的说明安装了LAPACK/BLAS,我认为应该解决了这个问题.什么都没有帮助.我究竟做错了什么?我不熟悉bash.
running build_ext cythoning tsne/bh_sne.pyx to tsne/bh_sne.cpp building 'bh_sne' extension creating build/temp.linux-x86_64-2.7 creating build/temp.linux-x86_64-2.7/tsne creating build/temp.linux-x86_64-2.7/tsne/bh_sne_src x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/home/ubuntu/env/work/local/lib/python2.7/site-packages/numpy/core/include -I/usr/local/include -Itsne/bh_sne_src/ -I/usr/include/python2.7 -c tsne/bh_sne_src/quadtree.cpp -o build/temp.linux-x86_64-2.7/tsne/bh_sne_src/quadtree.o -msse2 -O3 -fPIC -w cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++ [enabled by default] x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/home/ubuntu/env/work/local/lib/python2.7/site-packages/numpy/core/include -I/usr/local/include -Itsne/bh_sne_src/ -I/usr/include/python2.7 -c tsne/bh_sne_src/tsne.cpp -o build/temp.linux-x86_64-2.7/tsne/bh_sne_src/tsne.o -msse2 …
我有一个RDD,我通过加载文本文件并预处理它来创建.我不想收集它并将其保存到磁盘或内存(整个数据),而是想将它传递给python中的一些其他函数,它们一个接一个地使用迭代的形式.
这怎么可能?
data = sc.textFile('file.txt').map(lambda x: some_func(x))
an_iterable = data. ## what should I do here to make it give me one element at a time?
def model1(an_iterable):
for i in an_iterable:
do_that(i)
model(an_iterable)
Run Code Online (Sandbox Code Playgroud) 我一直在玩NLTK工具包.我经常遇到这个问题并在网上寻找解决方案,但我无处可寻.所以我在这里提出我的问题.
很多时候,NER不会将连续的NNP标记为一个NE.我认为编辑NER以使用RegexpTagger也可以提高NER.
例:
输入:
巴拉克奥巴马是一个伟大的人.
输出:
树('S',[树('PERSON',[('Barack','NNP')]),树('组织',[('奥巴马','NNP')]),('是', 'VBZ'),('a','DT'),('great','JJ'),('person','NN'),('.','.')])
在哪里
输入:
前副总统迪克·切尼告诉保守派电台主持人劳拉·英格拉汉姆,他"很荣幸"在任期间与达斯维德相提并论.
输出:
树('S',[('前','JJ'),('副','NNP'),('总统','NNP'),树('NE',[('Dick',' NNP'),('切尼','NNP')]),('告诉','VBD'),('保守','JJ'),('收音机','NN'),('主持人' ,'NN'),树('NE',[('Laura','NNP'),('Ingraham','NNP')]),('that','IN'),('他', 'PRP'),('
', ''),('是','VBD'),('荣幸','VBN'),('''',''''),('to','''' ),('be','VB'),('比较','VBN'),('到','TO'),树('NE',[('Darth','NNP'),( 'Vader','NNP')]),('while','IN'),('in','IN'),('office','NN'),('.','.') ])
在这里,副总统/ NNP,总统/ NNP(迪克/ NNP,切尼/ NNP)被正确提取.
所以我认为如果首先使用nltk.ne_chunk然后如果两个连续的树是NNP,那么两者都很有可能引用一个实体.
任何建议都将非常感激.我正在寻找我的方法中的缺陷.
谢谢.
为什么需要安装 Anaconda 包管理器Xeus-cling?到目前为止,我只使用了 pip,切换到新的包管理器似乎需要做很多工作。我想开始在 Jupyter 中使用 C++,但所有安装说明都假定conda包管理器。
有谁知道不需要 Anaconda 的 Xeus-cling 安装?
我一直在努力下载这里提到的arXiv文章大约一周:http://arxiv.org/help/bulk_data_s3#src.
我曾尝试很多东西:s3Browser,s3cmd.我能够登录我的存储桶,但我无法从arXiv存储桶下载数据.
我试过了:
s3cmd get s3://arxiv/pdf/arXiv_pdf_1001_001.tar看到:
$ s3cmd get s3://arxiv/pdf/arXiv_pdf_1001_001.tar
s3://arxiv/pdf/arXiv_pdf_1001_001.tar -> ./arXiv_pdf_1001_001.tar [1 of 1]
s3://arxiv/pdf/arXiv_pdf_1001_001.tar -> ./arXiv_pdf_1001_001.tar [1 of 1]
ERROR: S3 error: Unknown error
Run Code Online (Sandbox Code Playgroud)
s3cmd get 同 x-amz-request-payer:requester它再次给了我同样的错误:
$ s3cmd get --add-header="x-amz-request-payer:requester" s3://arxiv/pdf/arXiv_pdf_manifest.xml
s3://arxiv/pdf/arXiv_pdf_manifest.xml -> ./arXiv_pdf_manifest.xml [1 of 1]
s3://arxiv/pdf/arXiv_pdf_manifest.xml -> ./arXiv_pdf_manifest.xml [1 of 1]
ERROR: S3 error: Unknown error
Run Code Online (Sandbox Code Playgroud)
我也尝试过复制该文件夹中的文件.
$ aws s3 cp s3://arxiv/pdf/arXiv_pdf_1001_001.tar .
A client error (403) occurred when calling the HeadObject …Run Code Online (Sandbox Code Playgroud) 我在我的服务器上使用 Spark 和 Ubuntu。我只使用 shell,除此之外没有服务器的 UI。在 Web 浏览器上在本地计算机上工作时,始终可以选择查看 Spark 的统计信息,如作业、CPU、内存等。
有没有办法可以在服务器上本地查看所有这些信息?
我需要将两个大矩阵相乘并对其列进行排序.
import numpy
a= numpy.random.rand(1000000, 100)
b= numpy.random.rand(300000,100)
c= numpy.dot(b,a.T)
sorted = [argsort(j)[:10] for j in c.T]
Run Code Online (Sandbox Code Playgroud)
这个过程需要大量的时间和内存.有没有办法加快这个过程?如果不是,我如何计算执行此操作所需的RAM?我目前有一个带有4GB RAM且没有交换的EC2盒子.
我想知道这个操作是否可以序列化,我不必将所有内容存储在内存中.