相关疑难解决方法(0)

为什么"进口*"不好?

建议不要import *在Python中使用.

任何人都可以分享原因,以便我下次可以避免它吗?

python python-import

136
推荐指数
10
解决办法
5万
查看次数

pyspark列不可迭代

当我尝试groupBy并获得max时,拥有这个数据帧我得到Column是不可迭代的:

linesWithSparkDF
+---+-----+
| id|cycle|
+---+-----+
| 31|   26|
| 31|   28|
| 31|   29|
| 31|   97|
| 31|   98|
| 31|  100|
| 31|  101|
| 31|  111|
| 31|  112|
| 31|  113|
+---+-----+
only showing top 10 rows


ipython-input-41-373452512490> in runlgmodel2(model, data)
     65     linesWithSparkDF.show(10)
     66 
---> 67     linesWithSparkGDF = linesWithSparkDF.groupBy(col("id")).agg(max(col("cycle")))
     68     print "linesWithSparkGDF"
     69 

/usr/hdp/current/spark-client/python/pyspark/sql/column.py in __iter__(self)
    241 
    242     def __iter__(self):
--> 243         raise TypeError("Column is not iterable")
    244 
    245     # string methods

TypeError: Column is …
Run Code Online (Sandbox Code Playgroud)

apache-spark pyspark

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

如何计算PySpark DataFrame的平均值和标准差?

我调用的PySpark DataFrame(不是pandas)df非常大collect().因此,下面给出的代码效率不高.它使用的是少量数据,但现在却失败了.

import numpy as np

myList = df.collect()
total = []
for product,nb in myList:
    for p2,score in nb:
            total.append(score)
mean = np.mean(total)
std = np.std(total)
Run Code Online (Sandbox Code Playgroud)

有没有办法通过使用或类似获得meanstd作为两个变量pyspark.sql.functions

from pyspark.sql.functions import mean as mean_, std as std_
Run Code Online (Sandbox Code Playgroud)

withColumn但是,我可以使用这种方法逐行应用计算,并且它不返回单个变量.

更新:

样本内容df:

+----------+------------------+
|product_PK|          products|
+----------+------------------+
|       680|[[691,1], [692,5]]|
|       685|[[691,2], [692,2]]|
|       684|[[691,1], [692,3]]|
Run Code Online (Sandbox Code Playgroud)

我应计算的平均值和标准偏差score值,例如值1[691,1]的分数之一.

python apache-spark apache-spark-sql pyspark

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

NameError:名称“split”未用 Spark 定义

我一直在用 Spark 处理一个大数据集。上周,当我运行以下代码行时,它运行良好,现在它抛出一个错误:NameError: name 'split' is not defined。有人可以解释为什么这不起作用,我该怎么办?名称拆分未定义...我应该定义方法吗?它是我应该导入的依赖项吗?文档没有说我必须导入任何东西才能使用 split 方法。下面的代码。

test_df = spark_df.withColumn(
  "Keywords", 
   split(col("Keywords"), "\\|")
)
Run Code Online (Sandbox Code Playgroud)

split apache-spark pyspark pyspark-sql

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

Spark“sum”命令给出方法 sum([class java.util.ArrayList]) 不存在

我要疯了吗?

from pyspark.sql.functions import *
sum([2,3,2])
Run Code Online (Sandbox Code Playgroud)

给出:

py4j.Py4JException: Method sum([class java.util.ArrayList]) does not exist
Run Code Online (Sandbox Code Playgroud)

我怎样才能得到一个简单的总和?

幕后发生了什么火花让事情变得如此困难?

python arrays sum aggregate-functions apache-spark

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