Ошибка NonExistentTimeError при преобразовании кадра данных pandas в кадр данных pysparkPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Ошибка NonExistentTimeError при преобразовании кадра данных pandas в кадр данных pyspark

Сообщение Anonymous »

Я запрашиваю базу данных в InfluxDB. В базе данных есть дата в формате отметки времени. С помощью этого кода я делаю запрос

Код: Выделить всё

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()
NonExistentTimeError Traceback (самый последний вызов
последний) 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»