PySpark - Отключение фрейма данных с помощью регулярных выражений - PullRequest
0 голосов
/ 29 мая 2020

У меня есть приведенный ниже фрейм данных, который дает результаты после нескольких вычислений.

+------+--------+------------+------------+------------+-----------+-----------------+------------+-----------+-----------------+
| label| machine|value1_count|value2_count|value1_score|value1_band|value1_band_score|value2_score|value2_band|value2_band_score|
+------+--------+------------+------------+------------+-----------+-----------------+------------+-----------+-----------------+
|label1|machine1|           2|           0|       91.67|        low|               70|       100.0|     normal|              100|
|label1|machine2|           1|           1|       95.83|        low|               70|       95.83|        low|               70|
|label2|machine3|           3|           2|        87.5|        low|               70|       91.67|        low|               70|
|label2|machine4|           1|           1|       95.83|        low|               70|       95.83|        low|               70|
+------+--------+------------+------------+------------+-----------+-----------------+------------+-----------+-----------------+

Фрейм данных может иметь столбцы _count, _score, _band, _band_score для value3, value4 et c. Теперь я хочу отключить эти данные, чтобы получить данные в следующем формате:

+------+--------+----------+-----+-----+------+----------+
| label| machine|value_type|count|score|  band|band_score|
+------+--------+----------+-----+-----+------+----------+
|label1|machine1|    value1|    2|91.67|   low|        70|
|label1|machine1|    value2|    0|  100|normal|       100|
|label1|machine2|    value1|    1|95.83|   low|        70|
|label1|machine2|    value2|    1|95.83|   low|        70|
|label2|machine3|    value1|    3| 87.5|   low|        70|
|label2|machine3|    value2|    2|91.67|   low|        70|
|label2|machine4|    value1|    1|95.83|   low|        70|
|label2|machine4|    value2|    1|95.83|   low|        70|
+------+--------+----------+-----+-----+------+----------+

Я думаю, что unpivot с регулярным выражением будет здесь полезен, но я не могу этого добиться. Может ли кто-нибудь помочь мне в этом?

Заранее спасибо

...