Я пытаюсь выбрать столбцы из динамического значения, которое является именем столбца в моей таблице и на основе выбранных столбцов, я пытаюсь построить мою новую таблицу
Я разделил свой фрейм данных на основе значений столбца, и для каждого разделения я пытаюсь создать отдельную схему.
listids = [x for x in tab1.select("Val").distinct().collect()]
dfArray = [tab1.where(tab1.Val == x) for x in listids]
def getdf(df):
id=df.select("Val").distinct().flatMap(lambda x: x).collect()
samdf=tab2.where(F.lit(id[0])==1)
return samdf
[getdf(df) for df in dfArray]
Table 1 TABLE 2
------------------------------- -----------------------------------
ColNames | A |B col1 | col 2 | col3 | col4 | Val
------------------------------- ------------------------------------
col1 1 1 p a x r A
col2 q b y s A
col3 1 r c z t B
col4 1 1
Исходя из столбцов A и B, я ожидаю получить 2 таблицы вывода,
for A for B
col1 | col3 | col4 col1 | col4
------------------- -------------
p x r r t
q y x
Мне удалось выбрать столбцы для A и B во фрейме данных, однако я не могу перевести этот фрейм данных в схему и извлечь данные из таблицы 2
Таблица 1 является справочной таблицей, и я могу изменить ее схему в соответствии с решением. Я попытался транспонировать ее, чтобы оптимизировать, но не помог.