लाने के लिए डेटा का उपयोग स्तंभ नाम के रूप में संग्रहीत मूल्यों में एक स्तंभ के भीतर ही dataframe pyspark

0

सवाल

मैं एक बड़े डेटासेट के लिए इसी तरह के उदाहरण के नीचे :

आईडी कोड अध्ययन राशि COL_NAME
111 5611 एबीसीडी 56.17 आईडी
211 5411 GFED 451.1 राशि
311 3212 YTRA 687.3 अध्ययन

मैं चाहता हूँ कि आबाद करने के लिए मूल्यों के स्तंभों में संग्रहीत col_name में एक स्तंभ(COL_VAL) के भीतर एक ही dataframe के रूप में नीचे :

आईडी कोड अध्ययन राशि COL_NAME COL_VALUE
111 5611 एबीसीडी 56.17 आईडी 111
211 5411 GFED 451.1 राशि 451.1
311 3212 YTRA 687.3 अध्ययन YTRA

मैं का उपयोग कर रहा हूँ एक पाश और .इकट्ठा() आबाद करने के लिए मूल्यों, लेकिन यह समय की एक बहुत लेने. चाहते पता करने के लिए कुशल तरीके से ऐसा करने के लिए ही प्रासंगिक के लिए एक बड़े डेटासेट.

apache-spark loops pyspark python
2021-11-23 17:20:27
1

सबसे अच्छा जवाब

0

आप उपयोग कर सकते हैं when इस लक्ष्य को हासिल.

from pyspark.sql import functions as F

data = [(111, 5611, "ABCD", 56.17, "ID",),
(211, 5411, "GFED", 451.1, "AMOUNT",),
(311, 3212, "YTRA", 687.3, "STUDY",),]

df = spark.createDataFrame(data, ("ID", "CODE", "STUDY", "AMOUNT","COL_NAME"))

def derive_column_value():
    condition = F
    for possible_value in df.columns:
        condition = condition.when(F.col("COL_NAME") == possible_value, F.col(possible_value))
    return condition

df.withColumn("COL_VALUE", derive_column_value()).show()

आउटपुट

+---+----+-----+------+--------+---------+
| ID|CODE|STUDY|AMOUNT|COL_NAME|COL_VALUE|
+---+----+-----+------+--------+---------+
|111|5611| ABCD| 56.17|      ID|      111|
|211|5411| GFED| 451.1|  AMOUNT|    451.1|
|311|3212| YTRA| 687.3|   STUDY|     YTRA|
+---+----+-----+------+--------+---------+
2021-11-23 17:41:06

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में