Код: Выделить всё
query = f"select * from {measurement} where time > '2021-03-28T02:02:58Z' AND time <
'2021-03-28T02:05:00Z'"
result = client.query(query)
df_pandas = pd.DataFrame(list(result.get_points()))
df_pandas.head(20)

Затем я делаю некоторые трансформации
Код: Выделить всё
df_pandas_filtered = df_pandas[['time', 'idDispositivo', 'idSensor', 'valor']]
df_pandas_filtered.loc[:,'time'] = df_pandas_filtered['time'].str.slice(0, 19)
df_pandas_filtered.loc[:,'time'] = pd.to_datetime(df_pandas_filtered['time'], format='%Y-%m-%dT%H:%M:%S', errors='coerce')
df_pandas_filtered['time'] = df_pandas_filtered['time'].astype("datetime64[ns]")
df_pandas_filtered.loc[:,'idDispositivo'] = pd.to_numeric(df_pandas_filtered['idDispositivo'],errors='coerce').astype('Int64').replace({pd.NA: None})
df_pandas_filtered.loc[:,'idSensor'] = pd.to_numeric(df_pandas_filtered['idSensor'],errors='coerce').astype('Int64').replace({pd.NA: None})
df_pandas_filtered.loc[:,'valor'] = pd.to_numeric(df_pandas_filtered['valor'],errors='coerce').astype('Int64').replace({pd.NA: None})
df_pandas_filtered.head(20)

Ошибка возникает при преобразовании в фрейм данных pyspark
Код: Выделить всё
spark_df = spark.createDataFrame(df_pandas_filtered, schema=schema)
spark_df.show()
последний) Cell In[61], строка 2
1 # Конвертировать DataFrame Pandas в un DataFrame PySpark
----> 2 spark_df = spark.createDataFrame(df_pandas_filtered, Schema=schema)
3 spark_df.show()
Файл C:\ spark-3.5.0-bin-hadoop3\python\pyspark\sql\session.py:1440, в
SparkSession.createDataFrame(self, data,schema, sampleRatio,
verifySchema) 1436 data = pd. DataFrame(data,
columns=column_names) 1438 if has_pandas и isinstance(data,
pd.DataFrame): 1439 # Создать DataFrame из pandas DataFrame.
-> 1440 return super(SparkSession, self).createDataFrame( # type: ignore[call-overload] 1441 data, Schema, SampleRatio,
verifySchema 1442 ) 1443 return self._create_dataframe(
1444 data, Schema, SampleRatio, VerifySchema # тип:
игнорировать[arg-type] 1445 )
Файл
C:\spark-3.5.0-bin-hadoop3\python\pyspark\sql\ pandas\conversion.py:362,
в SparkConversionMixin.createDataFrame(self, data,schema,
samplingRatio,verifySchema)
360 alert(msg)
361 поднять
--> 362 Convert_data = self._convert_from_pandas(данные, схема, часовой пояс)
363 return self._create_dataframe(converted_data, Schema, SampleRatio, VerifySchema)
Файл
C:\spark-3.5.0-bin-hadoop3\python\pyspark\sql\pandas\conversion.py:474,
в SparkConversionMixin._convert_from_pandas(self, pdf, схема,
часовой пояс) .. . Файл
c:\Users\raidel.rodriguez.conda\envs\data_summary\Lib\site-packages\pandas_libs\tslibs\tzconversion.pyx:177,
в pandas._libs.tslibs.tzconversion. tz_localize_to_utc_single()
Файл
c:\Users\raidel.rodriguez.conda\envs\data_summary\Lib\site-packages\pandas_libs\tslibs\tzconversion.pyx:417,
в pandas._libs.tslibs.tzconversion.tz_localize_to_utc()
NonExistentTimeError: 2021-03-28 02:02:58
Я знаю, что это связано с изменением летнего времени в моем часовом поясе (Центральная Европа). Я проверил, что 28 марта 2021 г. в Испании было произведено изменение времени. Но я не знаю, как это исправить, и мне нужна помощь
Заранее спасибо
Подробнее здесь: https://stackoverflow.com/questions/790 ... -dataframe