小编mpS*_*der的帖子

代码存储库 - pyspark 中代码存储库的 CTX 到底是什么?

我在代码仓库中看到了 ctx 的使用,这到底是什么?它是内置库吗?我什么时候会使用它?

我在以下示例中看到过它:

df = ctx.spark.createdataframe(...
Run Code Online (Sandbox Code Playgroud)

palantir-foundry foundry-code-repositories

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

如何在 Pyspark 中动态链接条件?

语境

数据框应该具有category基于一组固定规则的列。规则集变得相当大。

问题

有没有办法使用元组列表(参见下面的示例)来动态链接条件when以达到与底部硬编码解决方案相同的结果。

# Potential list of rule definitions
category_rules = [
    ('A', 8, 'small'),
    ('A', 30, 'large'),
    ('B', 5, 'small'),
    # Group, size smaller value --> Category
    # and so on ... e.g.,
]
Run Code Online (Sandbox Code Playgroud)

例子

这是一个可重复性的玩具示例。由组和 ID 组成的数据框应添加列category,这取决于group列的内容。规则列表如上一节所示。

输入数据
data = [('A', '45345', 5), ('C', '55345', 5), ('A', '35345', 10), ('B', '65345', 4)]
df = spark.createDataFrame(data, ['group', 'id', 'size'])
Run Code Online (Sandbox Code Playgroud)
+-----+-----+-----+
|group|   id| size|
+-----+-----+-----+
|    A|45345|    5|
|    C|55345|    5| …
Run Code Online (Sandbox Code Playgroud)

python dataframe apache-spark pyspark

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

类与函数:如果在 Python 中使用类,我是否需要使用“self”关键字?

我有一个数据工程程序,它从联邦政府网站上获取一些数据并转换这些数据。我对是否需要使用“self”关键字或者根本不使用类是否更好的做法感到有些困惑。这是它目前的组织方式:

class GetGovtData():

    def get_data_1(arg1=0, arg2=1):
       df = conduct_some_operations
       return df

    def get_data_2(arg1=4, arg2=5):
       df = conduct_some_operations_two
       return df
Run Code Online (Sandbox Code Playgroud)

我主要在这里使用一个类来进行组织。例如,我可能需要使用一个类中的十几种不同方法。我发现输入这个更美观/更容易:

from data.get_govt_data import GetGovtData

df1 = GetGovtData.get_data_1()
df2 = GetGovtData.get_data_2()
Run Code Online (Sandbox Code Playgroud)

而不是:

from data import get_govt_data

df1 = get_govt_data.get_data_1()
df2 = get_govt_data.get_data_2()
Run Code Online (Sandbox Code Playgroud)

其中只有一大堆下划线。所以我很好奇使用这样的类是否会被认为是糟糕的代码,而不用担心“自我”?或者我应该消除这些类并在我的文件中使用一堆函数?

python class function object self

0
推荐指数
1
解决办法
277
查看次数