我正在使用pandasUDF将标准的ML python库应用于pyspark DataFrame。在定义了模式并进行了预测之后,我得到了pyspark DF作为输出。现在,我想用这个预测数据帧做一些事情,例如,我尝试对列"weekly_forecast_1“中的所有值进行求和。当我应用.collect()或.toPandas()方法时,在.fit()中得到以下错误 IndexError: too many indices for array:array is 0-dimensional, but 1 were indexed 每当我尝试将.collect()或.toPandas()方
我想将一些函数应用到pysaprk dataframe的列中,这是一个用UDF实现这一点的管理方法,但是我希望返回是另一个对象,而不是dataframe的一个列、一个熊猫数据框、一个python列表等等。
我使用分类器将每一列划分为类,但我希望结果是类的摘要,而不是修改,我不知道这是否适用于UDF。
我的代码是这样的
import numpy as np
import pandas as pd
import pyspark
from pyspark.sql import SQLContext
from pyspark.sql.functions import udf
from pyspark
在PySpark中,我们不能使用传统的熊猫或R风格的符号来根据DataFrame中的旧列来制作新的列。例如,假设我试图连接两列:
import pyspark.sql.functions as F
df['newcol'] = F.concat(df['col_1'], df['col_2'])
结果:
TypeError: 'DataFrame' object does not support item assignment
相反,这样做的实现方法是
df = df.withColumn('newcol', F.
我试图使用PySpark注释将一个发行版安装到整个pandas_udf列中。
therefore将该列拆分为较小的块,因此我无法获得基于整个人口的分布(该列的所有值)。
这是我使用的代码:
from pyspark.sql import Row
import pandas as pd
import numpy as np
import scipy.stats as st
l = [('a',0),('b',0.1),('c',0.2),('d',0.3),('e',0.4),('f',0.5)]
r
我有一个包含两列的pyspark dataframe,ID和Elements。"Elements“列中有list元素。它看起来像这样,
ID | Elements
_______________________________________
X |[Element5, Element1, Element5]
Y |[Element Unknown, Element Unknown, Element_Z]
我想用‘element’列中最频繁的元素组成一个列。输出应如下所示:
ID | Elements
我正在尝试对pyspark dataframe中一个名为"removed“的标记化列应用pos标签。 我正在试着 nltk.pos_tag(df_removed.select("removed")) 但我得到的只是值错误:ValueError: Cannot apply 'in' operator against a column: please use 'contains' in a string column or 'array_contains' function for an array column. 我怎么才
我正在使用Pyspark2.0通过读取csv来创建一个DataFrame对象,使用:
data = spark.read.csv('data.csv', header=True)
我使用以下命令找到数据的类型
type(data)
结果是
pyspark.sql.dataframe.DataFrame
我正在尝试将数据中的一些列转换为LabeledPoint,以便应用分类。
from pyspark.sql.types import *
from pyspark.sql.functions import loc
from pyspark.mllib.regression
我在pyspark dataframe中有一个列A,它的值如下 Column A Column B
1234 AB
45685 CD
2345 KN
789899 MN
12335577 LN 如果值少于8位,我需要在列A的开头添加零,以使值变为8位。因此,结果应该如下所示- Column A Column B
00001234 AB
00045685 CD
00002345 KN
00789899 MN
1
我正在尝试理解DataFrame列类型。当然,DataFrame不是一个物化的对象,它只是一组Spark的指令,将来要转换成代码。但我认为,这个类型列表代表了在执行操作时JVM中可能出现的对象类型。
import pyspark
import pyspark.sql.types as T
import pyspark.sql.functions as F
data = [0, 3, 0, 4]
d = {}
d['DenseVector'] = pyspark.ml.linalg.DenseVector(data)
d['old_DenseVector'] =
我正在查看这个SQL查询:
SELECT
tbl.id as id,
tbl. as my_name,
tbl.account as new_account_id,
CONVERT_TIMEZONE('UTC', 'America/Los_Angeles', tbl.entry_time)::DATE AS my_time
FROM tbl
我想知道我将如何将它转换为Pyspark?
假设我将tbl作为一个CSV加载到Pyspark中,如下所示:
tbl_dataframe = spark...load('/files/tbl.csv&
我有一个pyspark dataframe,其中一列填充了列表,要么包含条目,要么只包含空列表。我想高效地过滤掉所有包含空列表的行。
import pyspark.sql.functions as sf
df.filter(sf.col('column_with_lists') != [])
返回以下错误:
Py4JJavaError: An error occurred while calling o303.notEqual.
: java.lang.RuntimeException: Unsupported literal type class
也许我可以检查列表的长度,
我有一个Spark dataframe,其中包含一个列,其中包含部分行的重复单词: id source_value
1 Peter, Julia, Peter, Michael
2 NULL
3 Michael, Sara, Michael
4 John 我需要创建一个列,其中将排除每行中重复的单词: id result_value
1 Peter, Julia, Michael
2 NULL
3 Michael, Sara
4 John 使用PySpark实现这一点的最佳方法是什么?