【发布时间】:2019-07-29 13:21:38
【问题描述】:
我有一个 pyspark dataframe(df1),其第一行如下:
[Row(_c0='{"type":"Fi","values":[0.20100994408130646,1.172734797000885,0.06788740307092667,0.2314232587814331,0.2012220323085785]}', _c1='0')]
我想将“值”列表与下面dataframe(df2) 值的第一列进行比较,如下所示:
0 0.57581 1.25461 0.68694 0.974580 1.54789 0.23646
1 0.98745 0.23655 2.58970 4.587580 0.89756 1.25678
2 0.45780 5.78940 0.65986 2.125400 0.98745 1.23658
3 2.56834 0.25698 4.26587 0.569872 0.36987 0.68975
4 0.25678 1.23654 5.68320 0.986230 0.87563 2.58975
同样,我在df1 中有很多行,我必须查看df1“值”列表中的哪些值大于df2 中的相应列。我需要找到满足上述条件的那些索引并且将其作为列表存储在另一列中到df1。
例如1.172737 > 0.98745,所以它的索引是1。因此我将在df1 named(indices) 中有另一列,其中包含value1,如果出现另一个值,它必须附加相同的列。
比较是在各个列和行之间。上面显示的df1行是第1行,所以它必须与df2中的第一列进行比较。
如果我没有强调某事,请在 cmets 中告诉我。
【问题讨论】:
-
我认为你的 json 没有正确加载到你的 dataframe1 中,如果你解析它以获得正确的结构会更好。其次,如果两个数据框没有要连接的列,则无法比较它们。即使我认为它是 df1._c1 和 df2 的第一列。最后,您在 df1 中有 5 个值,在 df2 中有 6 个值:应该如何比较?
-
如我所说,比较的是第一行第一列(不是df2的第一行)
标签: python dataframe pyspark pyspark-sql