相关疑难解决方法(0)

Python ValueError:要解压缩的值太多

我从这段代码中得到了这个例外:

class Transaction:
    def __init__ (self):
        self.materials = {}

    def add_material (self, m):
        self.materials[m.type + m.purity] = m

    def serialize (self):
        ser_str = 'transaction_start\n'

        for k, m in self.materials:
            ser_str += m.serialize ()

        sert += 'transaction_end\n'
        return ser_str
Run Code Online (Sandbox Code Playgroud)

for行是抛出异常的行.该ms为Material对象.有人有什么想法吗?

python

141
推荐指数
3
解决办法
35万
查看次数

走向限制大RDD

我正在阅读许多图像,我想研究其中的一小部分以进行显影。结果,我试图了解如何实现这一目标:

In [1]: d = sqlContext.read.parquet('foo')
In [2]: d.map(lambda x: x.photo_id).first()
Out[2]: u'28605'

In [3]: d.limit(1).map(lambda x: x.photo_id)
Out[3]: PythonRDD[31] at RDD at PythonRDD.scala:43

In [4]: d.limit(1).map(lambda x: x.photo_id).first()
// still running...
Run Code Online (Sandbox Code Playgroud)

..那么怎么回事?我希望limit()的运行速度比我们的运行速度快得多[2],但事实并非如此*

下面,我将描述我的理解,并请纠正我,因为显然我缺少了一些东西:

  1. d 是成对的RDD(我从模式中知道),我是在用map函数说的:

    i)取每一对(将被命名x并给我photo_id属性)。

    ii)这将导致一个新的(匿名)RDD,我们将在其中应用该first()方法,但我不确定该方法的工作方式$,但应该给我该匿名RDD的第一个元素。

  2. 在中[3],我们将dRDD 限制为1,这意味着尽管d元素很多,但仅使用1并将map函数仅应用于该元素。本Out [3]应该是由映射创建的RDD。

  3. 在中[4],我希望遵循的逻辑[3]并只打印有限的RDD的唯一元素...

不出所料,在查看监视器后,[4]似乎处理了整个数据集,而其他数据集则没有,因此看来我使用的不limit()正确,或者这不是我要寻找的内容:

在此处输入图片说明


编辑: …

python hadoop distributed-computing apache-spark pyspark

6
推荐指数
1
解决办法
1349
查看次数

scala和python之间的API兼容性?

我已经阅读了十几页文档,似乎:

  1. 我可以跳过学习scala部分

  2. API完全在python中实现(我不需要学习任何东西的scala)

  3. 交互模式与scala shell完全一样快,并且故障排除同样容易

  4. 像numpy这样的python模块仍然会导入(没有残缺的python environement)

是否存在使得不可能的空缺区域?

apache-spark

5
推荐指数
1
解决办法
3459
查看次数