问题标签 [pyspark]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 在 Spark\PySpark 中保存\加载模型的正确方法是什么
我正在使用 PySpark 和 MLlib 使用 Spark 1.3.0,我需要保存和加载我的模型。我使用这样的代码(取自官方文档)
在我尝试使用 model0 之后,我得到了一个很长的回溯,并以此结束:
所以我的问题是——我做错了什么吗?据我调试,我的模型存储在(本地和 HDFS 上)并且它们包含许多带有一些数据的文件。我感觉模型保存正确,但可能没有正确加载。我也四处搜索,但没有发现任何相关内容。
看起来这个保存\加载功能最近已在 Spark 1.3.0 中添加,因此我还有另一个问题 - 在 1.3.0 版本之前保存\加载模型的推荐方法是什么?我还没有找到任何好的方法来做到这一点,至少对于 Python 而言。我也尝试过 Pickle,但遇到了与此处所述相同的问题Save Apache Spark mllib model in python
python - 如何使用 PySpark 从 Panda 数据帧写入 Spark SQL 表?
pandas.DataFrame.to_sql() 方法可以让您将数据框的结果写入数据库。这在标准 RDBMS 的上下文中运行良好。但是,如何使用 PySpark 将其与 Spark SQL 一起使用?我需要这个方法的连接参数 - 那是什么?
谢谢,马特
memory - 如何从 iPython 接口中找出 pyspark 的内存量?
我用命令启动
Spark向我打招呼
但是使用 sc,我无法找到它拥有的内存。如何找出这一点,如果可能的话,如何将其设置为另一个值。
pyspark - 如何在pySpark中的distnct后压缩
以下程序在 zip 步骤中失败。
产生的错误取决于是否指定了多个分区。
我明白那个
两个 RDD [必须] 具有相同数量的分区和每个分区中相同数量的元素。
解决此限制的最佳方法是什么?
我一直在使用以下代码执行操作,但我希望找到更有效的方法。
python - How to group by multiple keys in spark?
I have a bunch of tuples which are in form of composite keys and values. For example,
I want to perform sql like operations on this collection, where I can aggregate the information based on id[1..n] or pd[1..n] . I want to implement using the vanilla pyspark apis and not using SQLContext. In my current implementation I am reading from a bunch of files and merging the RDD.
I intend to create an aggregated array as a value. For example,
where 5.0,7.5,8.1 represent [t1,t2,t3] . I am currently, achieving the same by vanilla python code using dictionaries. It works fine for smaller data sets. But I worry as this may not scale for larger data sets. Is there an efficient way achieving the same using pyspark apis ?
apache-spark - 用 spark 4 秒来计算 13M 行是否有意义?
我是 spark 新手,目前正在测试 pySpark。它的运行速度比我预期的要慢,我想知道我是否设置正确。
我的问题:
我有一个由 57 个分区组成的 RDD(每个分区约 30Mb),所有分区都被缓存(内存中的总大小为 1700MB)。RDD 包含 13M 个字符串,每个字符串约 300 个字符。所以一般来说不是大数据集。那么为什么运行 count() 需要 4 秒?
我检查了 UI,似乎对于“计数”作业,它运行 57 个任务(如预期的那样),每个任务需要 0.6 秒,这对我来说似乎很慢。
我在谷歌云上运行,在 Mesos 之上,有 1 个主节点和 2 个从节点。每个实例有 8 个内核和 30 GB 的 RAM。
我的问题:
每个任务 0.6 秒有意义吗?
根据 UI,每个执行器花费 18 秒运行任务。假设每个节点有 8 个核心,这应该需要 2.25 秒。那么我们是如何在最后达到 4 秒的呢?
编码:
python - pyspark:使用 spark-submit 发送 jar 依赖项
我编写了一个 pyspark 脚本,它读取两个 json 文件,coGroup
并将结果发送到 elasticsearch 集群;当我在本地运行它时,一切(大部分)都按预期工作,我下载了和类的elasticsearch-hadoop
jar 文件,然后使用参数使用 pyspark 运行我的作业,我可以看到我的 elasticsearch 集群中出现的文档。org.elasticsearch.hadoop.mr.EsOutputFormat
org.elasticsearch.hadoop.mr.LinkedMapWritable
--jars
但是,当我尝试在 spark 集群上运行它时,出现此错误:
这对我来说似乎很清楚:elasticsearch-hadoop
工人无法使用罐子;所以问题是:我如何将它与我的应用程序一起发送?我可以使用sc.addPyFile
python 依赖项,但它不适用于 jars,并且使用的--jars
参数spark-submit
也无济于事。
python - 如何在 Amazon EMR 上运行 PySpark 作业(使用自定义模块)?
我想运行一个在我的(本地)机器上运行良好的 PySpark 程序。
我正在运行一个 Amazon Elastic Map Reduce 集群,并安装了所有必要的依赖项(Spark、来自 PyPI 的 Python 模块)。
现在,如何运行使用一些自定义模块的 PySpark 作业?我已经尝试了大概半天的很多东西,现在,无济于事。到目前为止我发现的最好的命令是:
但是,Python 失败了,因为它找不到custom_module.py
. 不过,它似乎试图复制它:
INFO yarn.Client:上传资源 s3://bucket/custom_module.py -> hdfs://...:9000/user/hadoop/.sparkStaging/application_..._0001/custom_module.py
信息 s3n.S3NativeFileSystem:打开 's3://bucket/custom_module.py' 进行阅读
这看起来是一个非常基本的问题,但是网络对此非常沉默,包括官方文档(Spark 文档似乎暗示了上面的命令)。
numpy - spark-submitting 时没有名为 numpy 的模块
我正在提交一个导入 numpy 的 python 文件,但出现no module named numpy
错误。
我在想我会为 numpy-python-files 拉一个鸡蛋,但我在弄清楚如何构建那个鸡蛋时遇到了麻烦。但后来我突然想到 pyspark 本身使用 numpy。引入我自己的 numpy 版本会很愚蠢。
对在这里做适当的事情有任何想法吗?