对于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数据集解决我的问题?