Я соединяю три фрейма данных, и все в порядке, но когда я вызываю метод «display» в последнем фрейме данных (объединяя три предыдущих фрейма данных), блоки данных возвращают эту ошибку:
java.lang.AssertionError: assertion failed
IИспользую:
%fs head dbfs:/databricks-datasets/iot-stream/data-user/
%fs ls dbfs:/databricks-datasets/iot-stream/data-user/
Может ли кто-нибудь мне помочь?Спасибо!
Это схемы фреймов данных:
df_MaximasCalorias
df_MinCalorias
df_MediaCalorias
Dataframe = dfCalorias (объединить df_MaximasCalorias и df_MinCalorias)
ID: long (nullable = true)
Max_Calorias: double (nullable= true)
Min_Calorias: double (обнуляемый = true)
Dataframe = dfCaloriasFinal (объединение dfCalorias и df_MediaCalorias)
ID: long (nullable = true)
Max_Calorias: double (nullable = true)
Min_Calorias: double (nullable = true)
- Media_Calorias: double (nullable = true)
И это полный код:
Изменить имена столбцов
df_MaximasCalorias = df_MaximasCalorias.withColumnRenamed("user_id","ID").withColumnRenamed("max(calories_burnt)","Max_Calorias")
df_MinimasCalorias = df_MinimasCalorias.withColumnRenamed("min(calories_burnt)","Min_Calorias") df_MediaCalorias = df_MediaCalorias.withColumnRenamed("avg(calories_burnt)","Media_Calorias")
Создать объединениевыражение
joinExpression = df_MaximasCalorias["ID"] == df_MinimasCalorias['user_id']
Первое присоединение
dfCalorias = df_MaximasCalorias.join(df_MinimasCalorias, joinExpression, "inner").select("ID","Max_Calorias","Min_Calorias") dfCalorias.show()
Показать данные.Отлично работает
display(dfCalorias)
Теперь присоедините новый фрейм данных dfCalorias
с df_MediaCalorias
joinExpression = dfCalorias["ID"] == df_MediaCalorias['user_id']
dfCaloriasFinal = dfCalorias.join(df_MediaCalorias, joinExpression, "inner").select("ID","Max_Calorias","Min_Calorias","Media_Calorias")
Ошибка в этом коде
display(dfCaloriasFinal)