小编Liz*_*zou的帖子

如何在pyspark中的groupBy之后计算唯一ID

我每年使用以下代码来聚集学生.目的是了解每年的学生总数.

from pyspark.sql.functions import col
import pyspark.sql.functions as fn
gr = Df2.groupby(['Year'])
df_grouped = 
gr.agg(fn.count(col('Student_ID')).alias('total_student_by_year'))
Run Code Online (Sandbox Code Playgroud)

结果是:

[学生按年份] [1]

我发现有这么多ID重复的问题所以结果是错误的和巨大的.

我希望按年份对学生进行聚集,按年计算学生总数,并将ID重复计算.

我希望这个问题很清楚.我是新成员谢谢

python pyspark spark-dataframe pyspark-sql

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

使用 BeautifulSoup 进行分页

我正在尝试从以下网站获取一些数据。https://www.drugbank.ca/drugs

对于表格中的每一种药物,我都需要深入了解名称和其他一些特定特征,例如类别、结构化指示(请单击药物名称以查看我将使用的特征)。

我编写了以下代码,但问题是我无法让我的代码处理分页(如您所见,有 2000 多页!)。

import requests
from bs4 import BeautifulSoup


def drug_data():
url = 'https://www.drugbank.ca/drugs/'
r = requests.get(url)
soup = BeautifulSoup(r.text ,"lxml")
for link in soup.select('name-head a'):
    href = 'https://www.drugbank.ca/drugs/' + link.get('href')
    pages_data(href)


def pages_data(item_url):
r = requests.get(item_url)
soup = BeautifulSoup(r.text, "lxml")
g_data = soup.select('div.content-container')

for item in g_data:
    print item.contents[1].text
    print item.contents[3].findAll('td')[1].text
    try:
        print item.contents[5].findAll('td',{'class':'col-md-2 col-sm-4'})
    [0].text
    except:
        pass
    print item_url
    drug_data()
Run Code Online (Sandbox Code Playgroud)

如何抓取所有数据并正确处理分页?

python pagination beautifulsoup

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

Pyspark levenshtein连接错误

我想基于Levenshtein距离执行连接。

我有2张桌子:

  1. Data:这是HDFS文件存储库中的CSV。列之一是Disease description,15K行。
  2. df7_ct_map:我从Hive呼叫的表格。列之一是Disease Indication,20K行。

我试图通过将每个描述与适应症(它们是疾病的文字描述)相匹配来连接两个表。理想情况下,它们必须相同,但是如果两个文本都不相同,我希望选择包含最大数量的常用单词的匹配文本。

from pyspark.sql.functions import levenshtein  
joinedDF = df7_ct_map.join( Data, levenshtein(df7_ct_map("description"), 
Data("Indication")) < 3)
joinedDF.show(10)
Run Code Online (Sandbox Code Playgroud)

问题DataDataFrame这就是为什么我得到以下错误:

TypeError: 'DataFrame' object is not callable
TypeError                                 Traceback (most recent call last)
in engine
----> 1 joinedDF = df7_ct_map.join( Data, levenshtein(df7_ct_map("description"), Data("Indication")) < 3)

TypeError: 'DataFrame' object is not callable
Run Code Online (Sandbox Code Playgroud)

一些忠告?我可以使用Fuzzywuzzy软件包吗?如果是这样,怎么办?

python levenshtein-distance apache-spark-sql fuzzywuzzy pyspark

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