Я думаю, вы отключили JTAG и SW в своем коде, когда первичный переназначение gpio. когда я код stm32 с базой libOpenCM3, код вроде этого: gpio_primary_remap(AFIO_MAPR_SWJ_CFG_JTAG_OFF_SW_OFF, AFIO_MAPR_CAN1_REMAP_PORTB);
вызовет проблему, похожую на вашу.
Это возможное решение:
//to create a joined DF with column "col_name"
//if columns "name" and "uuid" contains different values:
var output = df1.join(df2, df1.col("id_sk")===df2.col("id_sk"))
.where(df1.col("name")=!=df2.col("name") || df1.col("uuid")=!=df2.col("uuid"))
.withColumn("col_name", when(df1.col("name")=!=df2.col("name"), "name")
.otherwise(when(df1.col("uuid")=!=df2.col("uuid"), "uuid")))
//to create the new "col_values" column
//containing concatenated values:
output = output.withColumn("col_values", when(output.col("col_name")==="name", when(df1.col("name")=!=df2.col("name"), concat_ws(",", df1.col("name"), df2.col("name")) ))
.when(output.col("col_name")==="uuid", when(df1.col("uuid")=!=df2.col("uuid"), concat_ws(",", df1.col("uuid"), df2.col("uuid")) )))
output = output.select(df1.col("id_sk"), output.col("col_name"), output.col("col_values"))
+-----+--------+----------+
|id_sk|col_name|col_values|
+-----+--------+----------+
| 2| name| b,b-up|
| 3| uuid| 30,30-up|
+-----+--------+----------+
Обратите внимание, что я не думаю, что это наилучшее из возможных решений, а просто отправная точка (например, что если в одной строке более одного столбца? ценности?).