如何根据另一列选择特定的行?

时间:2018-09-27 06:39:41

标签: apache-spark-sql

对于Spark数据集SQL来说我是一个新手。

下面是我的数据集表,该数据集表由多个列组成,如下所示。

["12:23","23:30","1:2"].sum_strings(':')

我要做的是根据列工具提取具有最高比率值的两行。

例如,在36:55工具中,最高比率值是+---+--------+--------+-----------+---------+---------+--------------------+--------+----------+----------+ |avg|badCount|effectID|globalCount|goodCount|paramType| ratio| tool| toolName|totalCount| +---+--------+--------+-----------+---------+---------+--------------------+--------+----------+----------+ |0.0| 32.0| 0.0| 84.0| 52.0| CAT| 0.38095238095238093| tool| litho_c3| 1001.0| |0.0| 0.0| 0.0| 85.0| 85.0| CAT| 0.0| tool| litho_c1| 1001.0| |0.0| 0.0| 0.0| 75.0| 75.0| CAT| 0.0| tool| litho_c7| 1001.0| |0.0| 0.0| 0.0| 97.0| 97.0| CAT| 0.0| tool| litho_c6| 1001.0| |0.0| 0.0| 0.0| 86.0| 86.0| CAT| 0.0| tool| litho_c10| 1001.0| |0.0| 0.0| 0.0| 95.0| 95.0| CAT| 0.0| tool| litho_c8| 1001.0| |0.0| 0.0| 0.0| 79.0| 79.0| CAT| 0.0| tool| litho_c9| 1001.0| |0.0| 0.0| 0.0| 65.0| 65.0| CAT| 0.0| tool| litho_c2| 1001.0| |0.0| 0.0| 0.0| 87.0| 87.0| CAT| 0.0| tool| litho_c12| 1001.0| |0.0| 0.0| 0.0| 82.0| 82.0| CAT| 0.0| tool| litho_c4| 1001.0| |0.0| 0.0| 0.0| 79.0| 79.0| CAT| 0.0| tool| litho_c5| 1001.0| |0.0| 0.0| 0.0| 87.0| 87.0| CAT| 0.0| tool| litho_c11| 1001.0| |0.0| 32.0| 0.0| 1001.0| 969.0| CAT| 0.03196803196803197| recipe|r_ 15 _1.1| 1001.0| |0.0| 12.0| 0.0| 335.0| 323.0| CAT| 0.03582089552238806|operator| c2_o3| 1001.0| |0.0| 10.0| 0.0| 328.0| 318.0| CAT| 0.03048780487804878|operator| c1_o3| 1001.0| |0.0| 10.0| 0.0| 338.0| 328.0| CAT|0.029585798816568046|operator| c3_o3| 1001.0| |0.0| 32.0| 0.0| 248.0| 216.0| CAT| 0.12903225806451613| mask| mask_3| 1001.0| |0.0| 0.0| 0.0| 263.0| 263.0| CAT| 0.0| mask| mask_2| 1001.0| |0.0| 0.0| 0.0| 245.0| 245.0| CAT| 0.0| mask| mask_4| 1001.0| |0.0| 0.0| 0.0| 245.0| 245.0| CAT| 0.0| mask| mask_1| 1001.0| +---+--------+--------+-----------+---------+---------+--------------------+--------+----------+----------+ operator。因此,我想在0.03582089552238806工具中从三行中提取出两行以下。

0.03048780487804878

通过这种方式,最终表如下所示。

operator

请注意,|0.0| 12.0| 0.0| 335.0| 323.0| CAT| 0.03582089552238806|operator| c2_o3| 1001.0| |0.0| 10.0| 0.0| 328.0| 318.0| CAT| 0.03048780487804878|operator| c1_o3| 1001.0| 工具只有一行,因此它仅提取一行。

如何使用Spark数据集解决我的问题?

0 个答案:

没有答案