相关疑难解决方法(0)

"解压缩的价值太多了",迭代了一个字典.key => string,value => list

我收到了'too many values to unpack'错误.知道如何解决这个问题吗?

first_names = ['foo', 'bar']
last_names = ['gravy', 'snowman']

fields = {
    'first_names': first_names,
    'last_name': last_names,
}        

for field, possible_values in fields:  # error happens on this line              
Run Code Online (Sandbox Code Playgroud)

python

291
推荐指数
4
解决办法
43万
查看次数

使用pyspark/spark对大型分布式数据集进行采样

我在hdfs中有一个文件,它分布在集群中的节点上.

我正试图从这个文件中随机抽取10行.

在pyspark shell中,我使用以下命令将文件读入RDD:

>>> textFile = sc.textFile("/user/data/myfiles/*")
Run Code Online (Sandbox Code Playgroud)

然后我想简单地拿一个样本......关于Spark的一个很酷的事情是有类似的命令takeSample,不幸的是我认为我做错了,因为以下需要很长时间:

>>> textFile.takeSample(False, 10, 12345)
Run Code Online (Sandbox Code Playgroud)

所以我尝试在每个节点上创建一个分区,然后使用以下命令指示每个节点对该分区进行采样:

>>> textFile.partitionBy(4).mapPartitions(lambda blockOfLines: blockOfLines.takeSample(False, 10, 1234)).first()
Run Code Online (Sandbox Code Playgroud)

但这会给出一个错误ValueError: too many values to unpack:

org.apache.spark.api.python.PythonException: Traceback (most recent call last):
  File "/opt/cloudera/parcels/CDH-5.0.2-1.cdh5.0.2.p0.13/lib/spark/python/pyspark/worker.py", line 77, in main
    serializer.dump_stream(func(split_index, iterator), outfile)
  File "/opt/cloudera/parcels/CDH-5.0.2-1.cdh5.0.2.p0.13/lib/spark/python/pyspark/serializers.py", line 117, in dump_stream
    for obj in iterator:
  File "/opt/cloudera/parcels/CDH-5.0.2-1.cdh5.0.2.p0.13/lib/spark/python/pyspark/rdd.py", line 821, in add_shuffle_key
    for (k, v) in iterator:
ValueError: too many values to unpack
Run Code Online (Sandbox Code Playgroud)

如何使用spark或pyspark从大型分布式数据集中采样10行?

hadoop apache-spark

13
推荐指数
2
解决办法
2万
查看次数

python valueerror:解压缩的值太多了

我是一个蟒蛇初学者.我试图运行此代码:

def main():
    print ( " This program computes the average of two exam scores . ")
    score1,score2 = input ("Enter two scores separated by a comma:")
    average = (score1 + score2)/2.0
    print ("The average of the score is : " , average )
Run Code Online (Sandbox Code Playgroud)

当我召唤时,main()我得到了这个ValueError:

ValueError: too many values to unpack (expected 2)
Run Code Online (Sandbox Code Playgroud)

这段代码有什么问题?

python python-3.x

6
推荐指数
2
解决办法
6万
查看次数

在 Spark Python 中对 RDD 执行集差

我有两个 spark RDD,A 有 301,500,000 行,B 有 1,500,000 行。B 中的那 150 万行也都出现在 A 中。我想要这两个 RDD 之间的设置差异,以便我返回包含 300,000,000 行的 A,而来自 B 的那 1,500,000 行不再存在于 A 中。

我不能使用 Spark 数据帧。

这是我现在使用的系统。这些 RDD 有主键。我在下面做的是创建一个(收集的)出现在 B 中的主键列表,然后遍历 A 的主键以找到那些没有出现在 B 主键列表中的主键。

a = sc.parallelize([[0,"foo",'a'],[1,'bar','b'],[2,'mix','c'],[3,'hem', 'd'],[4,'line','e']])
b = sc.parallelize([[1,'bar','b'],[2,'mix','c']])
b_primary_keys = b.map(lambda x: x[0]).collect()  # since first col = primary key


def sep_a_and_b(row):
    primary_key = row[0]
    if(primary_key not in b_primary_keys):
        return(row)


a_minus_b = a.map(lambda x: sep_a_and_b(x)).filter(lambda x: x != None)
Run Code Online (Sandbox Code Playgroud)

现在,这适用于这个示例问题,因为 A 和 B 很小。但是,当我使用真实数据集 …

python set-difference apache-spark rdd

3
推荐指数
1
解决办法
3553
查看次数

标签 统计

python ×3

apache-spark ×2

hadoop ×1

python-3.x ×1

rdd ×1

set-difference ×1