Ошибка 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 (most recent call last) Cell In[61], line 2
1 # Convierte el Pandas DataFrame en un DataFrame de PySpark
----> 2 spark_df = spark.createDataFrame(df_pandas_filtered, schema=schema)
3 spark_df.show()

File C:\spark-3.5.0-bin-hadoop3\python\pyspark\sql\session.py:1440, in SparkSession.createDataFrame(self, data, schema, samplingRatio, verifySchema)    1436     data = pd.DataFrame(data, columns=column_names)    1438 if has_pandas and isinstance(data, pd.DataFrame):    1439     # Create a DataFrame from pandas DataFrame.
-> 1440     return super(SparkSession, self).createDataFrame(  # type: ignore[call-overload]    1441         data, schema, samplingRatio, verifySchema    1442     )    1443 return self._create_dataframe(    1444     data, schema, samplingRatio, verifySchema  # type: ignore[arg-type]    1445 )

File C:\spark-3.5.0-bin-hadoop3\python\pyspark\sql\pandas\conversion.py:362, in SparkConversionMixin.createDataFrame(self, data, schema, samplingRatio, verifySchema)
360             warn(msg)
361             raise
--> 362 converted_data = self._convert_from_pandas(data, schema, timezone)
363 return self._create_dataframe(converted_data, schema, samplingRatio, verifySchema)

File C:\spark-3.5.0-bin-hadoop3\python\pyspark\sql\pandas\conversion.py:474, in SparkConversionMixin._convert_from_pandas(self, pdf, schema, timezone) ... File c:\Users\raidel.rodriguez\.conda\envs\data_summary\Lib\site-packages\pandas\_libs\tslibs\tzconversion.pyx:177, in pandas._libs.tslibs.tzconversion.tz_localize_to_utc_single()

File c:\Users\raidel.rodriguez\.conda\envs\data_summary\Lib\site-packages\pandas\_libs\tslibs\tzconversion.pyx:417, in 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»