我有以下几点pyspark.dataframe:
age state name income
21 DC john 30-50K
NaN VA gerry 20-30K
Run Code Online (Sandbox Code Playgroud)
我试图实现相当于df.isnull().sum()(来自熊猫)产生:
age 1
state 0
name 0
income 0
Run Code Online (Sandbox Code Playgroud)
起初我尝试了一些类似的东西:
null_counter = [df[c].isNotNull().count() for c in df.columns]
Run Code Online (Sandbox Code Playgroud)
但这会产生以下错误:
TypeError: Column is not iterable
Run Code Online (Sandbox Code Playgroud)
同样,这就是我目前迭代列以获得最小值的方式:
class BaseAnalyzer:
def __init__(self, report, struct):
self.report = report
self._struct = struct
self.name = struct.name
self.data_type = struct.dataType
self.min = None
self.max = None
def __repr__(self):
return '<Column: %s>' % self.name
class BaseReport:
def __init__(self, df):
self.df = df …Run Code Online (Sandbox Code Playgroud) 我有一个带有两列的pyspark数据框:
[Row(zip_code='58542', dma='MIN'),
Row(zip_code='58701', dma='MIN'),
Row(zip_code='57632', dma='MIN'),
Row(zip_code='58734', dma='MIN')]
Run Code Online (Sandbox Code Playgroud)
如何从列内的数据中创建key:value对?
例如:
{
"58542":"MIN",
"58701:"MIN",
etc..
}
Run Code Online (Sandbox Code Playgroud)
由于性能原因,我想避免使用collect。我尝试了一些事情,但似乎不能仅仅得到价值观。
在 Pandas 0.18.1 中,假设我有一个像这样的数据框:
df = pd.DataFrame(np.random.randn(100,200))
df.head()
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
Run Code Online (Sandbox Code Playgroud)
如果我想像这样垂直查看这个怎么办:
0 1 2 3 4 5
6 7 8 9 10 11
Run Code Online (Sandbox Code Playgroud)
文档指向:
pd.set_option('expand_frame_repr', True)
df
0 1 2 3 4 5 6 \
0 -1.039575 0.271860 -0.424972 0.567020 0.276232 -1.087401 -0.673690
1 0.404705 0.577046 -1.715002 -1.039268 …Run Code Online (Sandbox Code Playgroud)