小编Chr*_*s C的帖子

PySpark - 获取重复行的索引

假设我有一个 PySpark 数据框,如下所示:

+--+--+--+--+
|a |b |c |d |
+--+--+--+--+
|1 |0 |1 |2 |
|0 |2 |0 |1 |
|1 |0 |1 |2 |
|0 |4 |3 |1 |
+--+--+--+--+
Run Code Online (Sandbox Code Playgroud)

如何创建标记所有重复行的列,如下所示:

+--+--+--+--+--+
|a |b |c |d |e |
+--+--+--+--+--+
|1 |0 |1 |2 |1 |
|0 |2 |0 |1 |0 |
|1 |0 |1 |2 |1 |
|0 |4 |3 |1 |0 |
+--+--+--+--+--+
Run Code Online (Sandbox Code Playgroud)

我尝试使用 groupBy 和聚合函数无济于事。

python apache-spark pyspark

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

Python-PySpark的Pickle Spacy

Spacy 2.0文档提到开发人员已添加了一些功能,以允许对Spacy进行腌制,以便可以由PySpark连接的Spark Cluster使用它,但是,他们没有提供有关如何执行此操作的说明。

有人可以解释我如何腌制Spacy的英语NE解析器以在udf函数中使用吗?

这不起作用:

from pyspark import cloudpickle
nlp = English()
pickled_nlp = cloudpickle.dumps(nlp)
Run Code Online (Sandbox Code Playgroud)

python user-defined-functions apache-spark pyspark

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

Spacy - nlp.pipe()返回生成器

我在Python中使用Spacy for NLP.我试图用来nlp.pipe()生成一个Spacy doc对象列表,然后我可以分析它.奇怪的是,nlp.pipe()返回类的对象<generator object pipe at 0x7f28640fefa0>.如何让它按预期返回文档列表?

import Spacy
nlp = spacy.load('en_depent_web_md', disable=['tagging', 'parser'])
matches = ['one', 'two', 'three']
docs = nlp.pipe(matches)
docs
Run Code Online (Sandbox Code Playgroud)

python nlp spacy

4
推荐指数
2
解决办法
2210
查看次数

Spacy - 保存自定义管道

我正在尝试将自定义PhraseMatcher()组件集成到我的nlp管道中,这样我就可以加载自定义Spacy模型,而无需在每次加载时将自定义组件重新添加到通用模型中.

如何加载包含自定义管道组件的Spacy模型?

我创建组件,将其添加到我的管道并使用以下内容保存:

import requests
from spacy.lang.en import English
from spacy.matcher import PhraseMatcher
from spacy.tokens import Doc, Span, Token

class RESTCountriesComponent(object):
    name = 'countries'
    def __init__(self, nlp, label='GPE'):
        self.countries = [u'MyCountry', u'MyOtherCountry']
        self.label = nlp.vocab.strings[label]
        patterns = [nlp(c) for c in self.countries]
        self.matcher = PhraseMatcher(nlp.vocab)
        self.matcher.add('COUNTRIES', None, *patterns)        
    def __call__(self, doc):
        matches = self.matcher(doc)
        spans = []
        for _, start, end in matches:
            entity = Span(doc, start, end, label=self.label)
            spans.append(entity)
        doc.ents = list(doc.ents) + spans
        for span in …
Run Code Online (Sandbox Code Playgroud)

python nlp spacy

4
推荐指数
1
解决办法
979
查看次数

熊猫-自上次大于0以来的行数

假设我有一个像这样的Pandas系列:

import pandas as pd

pd.Series([1, 0, 0, 1, 0, 0, 0], name='series')
Run Code Online (Sandbox Code Playgroud)

我如何添加自最后一个> 0以来的行数的列,如下所示:

pd.DataFrame({
    'series': [1, 0, 0, 1, 0, 0, 0],
    'row_num': [0, 1, 2, 0, 1, 2, 3]
})
Run Code Online (Sandbox Code Playgroud)

python indexing pandas

4
推荐指数
1
解决办法
40
查看次数

Pandas - 行是否属于具有列值和相同ID的行

我是熊猫的新手.我有一个像这样的Pandas数据框:

df = pd.DataFrame(data={'id': [1, 1, 1, 2, 2, 2, 2], 'val1': [0, 1, 0, 0, 1, 0, 0]})
Run Code Online (Sandbox Code Playgroud)

我想添加一个列val2,指示一行是否落在另一行与其id自身相同的行之下val1 == 1.

结果将是一个数据框,如:

df = pd.DataFrame(data={'id': [1, 1, 1, 2, 2, 2, 2], 'val1': [0, 1, 0, 0, 1, 0, 0], 'val2': [0, 0, 1, 0, 0, 1, 1]})
Run Code Online (Sandbox Code Playgroud)

我的第一个想法是使用apply语句,但这些只是按行进行.从我的循环经验来看,永远不是答案.任何帮助将不胜感激!

python apply dataframe pandas

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

PySpark - 将上一行和下一行附加到当前行

假设我有一个像这样的 PySpark 数据框:

1 0 1 0
0 0 1 1
0 1 0 1
Run Code Online (Sandbox Code Playgroud)

如何将一行的最后一列和下一列附加到当前行,如下所示:

1 0 1 0 0 0 0 0 0 0 1 1
0 0 1 1 1 0 1 0 0 1 0 1
0 1 0 1 0 0 1 1 0 0 0 0
Run Code Online (Sandbox Code Playgroud)

我熟悉.withColumn()添加列的方法,但不确定我会在该字段中放置什么。

它们"0 0 0 0"是占位符值,因为这些行之前和之后没有先前或后续行。

python dataframe apache-spark apache-spark-sql pyspark

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

PySpark-将DF列合并为命名的StructType

我想将PySpark数据框的多列合并到的一列中StructType

假设我有一个像这样的数据框:

columns = ['id', 'dogs', 'cats']
vals = [(1, 2, 0),(2, 0, 1)]
df = sqlContext.createDataFrame(vals, columns)
Run Code Online (Sandbox Code Playgroud)

我希望得到的数据框类似于此(不是像它实际打印的那样,而是让您了解如果您还不熟悉StructType的意思):

id | animals
1  | dogs=2, cats=0
2  | dogs=0, cats=1
Run Code Online (Sandbox Code Playgroud)

现在,我可以完成以下任务:

StructType(
    [StructField('dogs', IntegerType(), True),
    [StructField('cats', IntegerType(), True)
)
Run Code Online (Sandbox Code Playgroud)

udf然而,在我的结尾,我宁愿只使用一个函数来完成它。如果不存在,我会感到惊讶。

python database dataframe pyspark

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