小编Emm*_*mma的帖子

pyspark 用另一个值替换数据框中的所有值

我的 pyspark 数据框中有 500 列……有些是字符串类型,有些是 int 类型,有些是 boolean(100 个布尔列)。现在,所有布尔列都有两个不同的级别 - 是和否,我想将它们转换为 1/0

对于字符串,我有三个值 - 通过、失败和空。如何用 0 替换这些空值?fillna(0) 仅适用于整数

 c1| c2 |    c3 |c4|c5..... |c500
yes| yes|passed |45....
No | Yes|failed |452....
Yes|No  |None   |32............
Run Code Online (Sandbox Code Playgroud)

当我做

df.replace(yes,1)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

ValueError: Mixed type replacements are not supported
Run Code Online (Sandbox Code Playgroud)

python pyspark pyspark-sql

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

awsglue.utils.GlueArgumentError:参数 --JOB_NAME 是必需的

当我使用 Python 在 AWS Glue 中运行 Glue 作业样板时,出现错误

\n\n
import sys\nfrom awsglue.transforms import *\nfrom awsglue.utils import getResolvedOptions\nfrom pyspark.context import SparkContext\nfrom awsglue.context import GlueContext\nfrom awsglue.job import Job\n\nglueContext = GlueContext(SparkContext.getOrCreate())\nspark = glueContext.spark_session\n\nargs = getResolvedOptions(sys.argv, [\'JOB_NAME\'])\njob = Job(glue_context)\njob.init(args[\xe2\x80\x98JOB_NAME\xe2\x80\x99], args)\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是错误

\n\n
in getResolvedOptions\nFile "/usr/lib64/python2.7/argparse.py", line 1733, in parse_known_args\nnamespace, args = self._parse_known_args(args, namespace)\nFile "/usr/lib64/python2.7/argparse.py", line 1957, in _parse_known_args\nself.error(_(\'argument %s is required\') % name)\nawsglue.utils.GlueArgumentError: argument --JOB_NAME is required\n
Run Code Online (Sandbox Code Playgroud)\n\n

这遵循我的代码,然后

\n\n
job.commit()\n
Run Code Online (Sandbox Code Playgroud)\n\n

但 AWS 表示不提供 JOBNAME。\n我做错了什么?\ngetResolved 是做什么的?我尝试阅读 AWS 文档,但什么也没得到。

\n

python amazon-web-services pyspark aws-glue

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

pyspark将int列转换为列表类型

我的数据框有一个列num_of_items。这是一个计数字段。现在,我想将其从 int 类型转换为 list 类型。

我尝试使用array(col)甚至创建一个函数来通过将 int 值作为输入来返回列表。没用

from pyspark.sql.types import ArrayType
from array import array

def to_array(x):
    return [x]

df=df.withColumn("num_of_items", monotonically_increasing_id())
Run Code Online (Sandbox Code Playgroud)

df

col_1    | num_of_items
A        |  1
B        |  2
Run Code Online (Sandbox Code Playgroud)

预期产出

col_1    | num_of_items
A        | [23]
B        | [43]
Run Code Online (Sandbox Code Playgroud)

pyspark

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