Как быстро и легко преобразовать фреймы данных R и pandas в Databricks? - PullRequest
0 голосов
/ 29 мая 2020

Я пользователь R с минимальным опытом python. У меня есть коллеги, которые используют python, и я хочу иметь возможность легко конвертировать между фреймами данных R и python / pandas в одной записной книжке Databricks. Я слышал, что для этого мне нужно использовать таблицы Spark Temp, и что это довольно просто, но я не могу найти полный пример кода и пока не смог заставить его работать.

Я получаю фрейм данных SparkR (так как я не могу заставить фреймы данных Base R работать с RegisterTempTable ()) и конвертирую его во временную таблицу:

#Cell 1
jdbc_url <- "jdbc:sqlserver://myserver.database.windows.net:1433;database=mydb;user=user;password=*****"
df_R <- read.jdbc(jdbc_url, "(SELECT TOP 10 * FROM [schema].[table]) as result" )

SparkR:::registerTempTable(df_R,"df_temptable")

Затем я пытаюсь прочитать это обратно как pandas dataframe:

%python
#Cell 2:
import pandas as pd

pandas_df = df_temptable.select("*").toPandas()

, что приводит к ошибке:

NameError: name 'df_temptable' is not defined

Как мне успешно конвертировать между R и python dataframe и обратно в Databricks (я бы предпочел go из фрейма данных Base R в фрейм данных pandas без использования Scala и за как можно меньшее количество шагов)?

1 Ответ

0 голосов
/ 03 июня 2020

Из сообщения об ошибке "NameError: name 'df_temptable' is not defined" похоже, что df_temptable не определен как фрейм данных.

Вот пример преобразования искровых DataFrames в Pandas DataFrames .

%python

import numpy as np
import pandas as pd

# Enable Arrow-based columnar data transfers
spark.conf.set("spark.sql.execution.arrow.enabled", "true")

# Generate a pandas DataFrame
pdf = pd.DataFrame(np.random.rand(100, 3))

# Create a Spark DataFrame from a pandas DataFrame using Arrow
df = spark.createDataFrame(pdf)

# Convert the Spark DataFrame back to a pandas DataFrame using Arrow
result_pdf = df.select("*").toPandas()
...