我试图从动态值中选择列,该动态值是表中的列名,并且基于所选的列,我试图构建新表
我根据column的值拆分数据框架,对于每次拆分,我尝试创建一个单独的架构。
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是一个参考表,我可以更改其架构以适合该解决方案。我尝试对其进行转置以对其进行优化,但没有帮助。