我有一个小房间 df
它由两列组成,分别包含一个说明和一个值:
description| value|
+--------------+--------------------+
| PED_tobacco| 0.4|
|PED_nontobacco| 1.49|
| GMI| 17590.8855333196|
| CMO_NGP| 53389.0|
| A| 80.3|
| SC_TT| -0.146|
| SC_THP| -0.056|
| SC_ENDS| -0.007|
| SC_CF_PD| -0.002|
| SC_CF_FF| -0.031|
| CO2_comb| 1.23E-6|
| CO2_lighter|2.083000000000000...|
| Carbon_Cost| 114.0|
| PR_SDG12A| -0.05|
| PR_SDG12B| -0.01|
| PR_SDG3| 0.0|
| PR_SDG14| -0.27|
|EDEVICE_SDG12A| -0.01|
|EDEVICE_SDG12B| -0.05|
| EDEVICE_SDG3| -0.01|
+--------------+--------------------+
我一直试图找到一种方法来转换每一行,在一个独立定义的变量中,这样我就可以直接引用它。例如,我想说 PED_tobacco * 10
,然后回来 40
.
我试着把它变成 list
字典(至少我可以用我的字典来解释) python
背景),使用:
ass_dict = df_assumptions \
.rdd \
.map(lambda row: {row[0]: row[1]}) \
.collect()
# Which prints:
{'PED_tobacco': 0.4}, {'PED_nontobacco': 1.49}, {'GMI': 17590.8855333196}, {'CMO_NGP': 53389.0}, {'A': 80.3}, {'SC_TT': -0.146}, {'SC_THP': -0.056}, {'SC_ENDS': -0.007}, {'SC_CF_PD': -0.002}, {'SC_CF_FF': -0.031}, {'CO2_comb': 1.23e-06}, {'CO2_lighter': 2.0830000000000002e-08}, {'Carbon_Cost': 114.0}, {'PR_SDG12A': -0.05}, {'PR_SDG12B': -0.01}, {'PR_SDG3': 0.0}, {'PR_SDG14': -0.27}, {'EDEVICE_SDG12A': -0.01}, {'EDEVICE_SDG12B': -0.05}, {'EDEVICE_SDG3': -0.01}, {'EDEVICE_SDG14': 0.0}, {'TL_GL': 1.0}, {'TL_GR': 0.0}, {'EW_GL': 0.83}]
但是我仍然不能独立地访问每个变量。在 python
我使用以下方法:
def convert_to_var(df):
desc = []
val = []
for i,row in df.iterrows():
desc.append(i)
val.append(row)
return dict(val)
val_dict = convert_to_var(IA)
globals().update(val_dict)
在spark中有没有同样的方法?如何将每个描述值作为单独的变量直接调用?提前谢谢。
1条答案
按热度按时间9q78igpj1#
您可以合并收集的词典列表。不过,使用变量确实是个坏主意。最好直接使用字典,这是你从代码中得到的。