问题:在丢弃重复项时,在pandas中,您可以指定要保留的列.Spark Dataframes中是否有等价物?
熊猫:
df.sort_values('actual_datetime', ascending=False).drop_duplicates(subset=['scheduled_datetime', 'flt_flightnumber'], keep='first')
Run Code Online (Sandbox Code Playgroud)
Spark数据帧(我使用Spark 1.6.0)没有keep选项
df.orderBy(['actual_datetime']).dropDuplicates(subset=['scheduled_datetime', 'flt_flightnumber'])
Run Code Online (Sandbox Code Playgroud)
想象一下'scheduled_datetime'和'flt_flightnumber'是第6,17列.通过基于这些列的值创建密钥,我们还可以进行重复数据删除
def get_key(x):
return "{0}{1}".format(x[6],x[17])
df= df.map(lambda x: (get_key(x),x)).reduceByKey(lambda x,y: (x))
Run Code Online (Sandbox Code Playgroud)
但如何指定保留第一行并摆脱其他重复?最后一排怎么样?
使用Spark 1.6,我有一个Spark DataFrame column
(名为let col1
),其值为A,B,C,DS,DNS,E,F,G和H,我想col2
用dict
下面的值创建一个新列(比方说),我该如何映射?(所以''A'需要映射到'S'等......"
dict = {'A': 'S', 'B': 'S', 'C': 'S', 'DS': 'S', 'DNS': 'S', 'E': 'NS', 'F': 'NS', 'G': 'NS', 'H': 'NS'}
Run Code Online (Sandbox Code Playgroud) 我有一个数据帧,部分复制如下:
import pandas as pd
import numpy as np
tab = pd.DataFrame(np.array([[ 46, 39, 25, 29, 21, 12, 33, 32, 70, 109, 144, 158, 161,
184, 163, 113, 117, 82, 76, 88, 77, 76, 64, 35],
[ 39, 33, 29, 29, 26, 14, 25, 33, 60, 83, 126, 117, 111,
148, 141, 104, 92, 75, 78, 74, 63, 67, 52, 39],
[ 30, 27, 14, 11, 20, 17, 21, 31, 48, 62, 83, 78, 88,
90, 80, 67, 53, 61, …
Run Code Online (Sandbox Code Playgroud) 这是一个名为大型数据集的高峰P
,其中有10个特许经营者(CS
)具有不同的商店(SHP
),其中包含多个数值.数据集按周(WK
)2 tm 52 列出它们.它创建一个大文件.只有6个第一行的峰值:
WK,MND,CS,SHP,RevCY,RevLY,TCY,TLY,ACY,ALY
=========================================
2,JAN,AAA,AAA Shop 1,16834,16686,1837,1983,2853,3002
2,JAN,AAA,AAA Shop 2,95919,114696,9742,11813,20521,24673
2,JAN,BBB, BBB shop 1,93428,92212,7647,7857,18436,17984
2,JAN,BBB, BBB Shop 2,30600,35831,2748,3063,5579,6408
2,JAN,CCC, CCC Shop 1, 65229,78761,6074,7172,13852,16706
2,JAN,CCC, CCC Shop 2,465,754,73,118,92,162
Run Code Online (Sandbox Code Playgroud)
我很难只绘制关注fi的值SHP==AAA
.
p <- ggplot(P, aes(WK, RevCY)) + geom_bar(stat="identity")
Run Code Online (Sandbox Code Playgroud)
这是所有商店和所有商店的密谋CS
.因此,基本问题是要了解我如何只绘制商店(SHP
)CS=AAA
.让我们说代码中WK
x轴和RevCY
y轴上的周()ggplot() + geom_bar(stat="identity")
.
这是正确的方向吗?:
p <- ggplot(P[P$CS=="AAA"], aes(WK, RevCY)) + geom_bar(stat="identity")
Run Code Online (Sandbox Code Playgroud)
因此,无需创建各种子集并直接进入ggplot()
代码.希望我的问题很明确.
apache-spark ×2
python ×2
color-scheme ×1
dataframe ×1
dictionary ×1
duplicates ×1
ggplot2 ×1
heatmap ×1
pyspark ×1
r ×1
seaborn ×1