Манипулировать фреймом данных SQL с помощью скрипта python в Power BI

#python #sql #powerbi #powerquery #m

#python #sql #powerbi #powerquery #m

Вопрос:

Я хотел бы выполнить простой скрипт python в Power BI для SQL dataframe. Но ошибка, похоже, указывает на то, что таблица SQL была прочитана как файл CSV, и я не знаю, почему скрипт рассматривает фрейм данных как файл CSV, а не как фрейм данных SQL.

Сценарий python :
import pandas as pd
dataset['COD-MARQ'] = dataset['COD-MARQ'].str.strip()

Есть идеи о том, как я могу обработать?

Спасибо

введите описание изображения здесь

 Traceback (most recent call last):
  File "PythonScriptWrapper.PY", line 7, in <module>
    df1 = pandas.read_csv('input_df_da064532-6620-4e48-a091-ff580b127759.csv')
  File "C:UsersafalieresAppDataLocalProgramsPythonPython38-32libsite-packagespandasioparsers.py", line 686, in read_csv
    return _read(filepath_or_buffer, kwds)
  File "C:UsersafalieresAppDataLocalProgramsPythonPython38-32libsite-packagespandasioparsers.py", line 458, in _read
    data = parser.read(nrows)
  File "C:UsersafalieresAppDataLocalProgramsPythonPython38-32libsite-packagespandasioparsers.py", line 1186, in read
    ret = self._engine.read(nrows)
  File "C:UsersafalieresAppDataLocalProgramsPythonPython38-32libsite-packagespandasioparsers.py", line 2145, in read
    data = self._reader.read(nrows)
  File "pandas_libsparsers.pyx", line 847, in pandas._libs.parsers.TextReader.read
  File "pandas_libsparsers.pyx", line 862, in pandas._libs.parsers.TextReader._read_low_memory
  File "pandas_libsparsers.pyx", line 941, in pandas._libs.parsers.TextReader._read_rows
  File "pandas_libsparsers.pyx", line 1073, in pandas._libs.parsers.TextReader._convert_column_data
  File "pandas_libsparsers.pyx", line 1119, in pandas._libs.parsers.TextReader._convert_tokens
  File "pandas_libsparsers.pyx", line 1194, in pandas._libs.parsers.TextReader._convert_with_dtype
  File "pandas_libsparsers.pyx", line 1814, in pandas._libs.parsers._try_int64
MemoryError: Unable to allocate 64.0 KiB for an array with shape (8192,) and data type int64

Détails :
    DataSourceKind=Python
    DataSourcePath=Python
    Message=Ρŷтнőŋ şсŗĩрţ εггǿŗ.
Traceback (most recent call last):
  File "PythonScriptWrapper.PY", line 7, in <module>
    df1 = pandas.read_csv('input_df_da064532-6620-4e48-a091-ff580b127759.csv')
  File "C:UsersafalieresAppDataLocalProgramsPythonPython38-32libsite-packagespandasioparsers.py", line 686, in read_csv
    return _read(filepath_or_buffer, kwds)
  File "C:UsersafalieresAppDataLocalProgramsPythonPython38-32libsite-packagespandasioparsers.py", line 458, in _read
    data = parser.read(nrows)
  File "C:UsersafalieresAppDataLocalProgramsPythonPython38-32libsite-packagespandasioparsers.py", line 1186, in read
    ret = self._engine.read(nrows)
  File "C:UsersafalieresAppDataLocalProgramsPythonPython38-32libsite-packagespandasioparsers.py", line 2145, in read
    data = self._reader.read(nrows)
  File "pandas_libsparsers.pyx", line 847, in pandas._libs.parsers.TextReader.read
  File "pandas_libsparsers.pyx", line 862, in pandas._libs.parsers.Tex...
    ErrorCode=-2147467259
    ExceptionType=Microsoft.PowerBI.Scripting.Python.Exceptions.PythonScriptRuntimeException ```
  

Комментарии:

1. Можете ли вы опубликовать последние несколько строк обратной трассировки, где обычно отображается ошибка?

2. Спасибо за ответ! Я обновил сообщение со всем сообщением об ошибке. Я надеюсь, что это поможет вам

Ответ №1:

Я не уверен, что это проблема, но мне кажется dataset , что это относится к предыдущему шагу, а не к исходному источнику, что означает, что он больше не находится в формате SQL dataframe. Вероятно, вы хотите либо импортировать исходный код с помощью python, либо изменить свой скрипт, чтобы обрабатывать набор данных не как SQL dataframe, а в любом формате, который редактор запросов передает скрипту python (который, я думаю, является фреймом данных pandas).

Отдельно отметим, что в данном конкретном случае кажется ненужным использовать python для простого преобразования, которое так же легко можно выполнить изначально в M.

Комментарии:

1. Спасибо за ответ! Я новичок в Power BI. Исходным источником является SQL dataframe, и я хочу применить к нему более крупный скрипт Python. Эта строка — просто тест. Я импортировал фрейм данных SQL, нажав «Получить данные», затем «База данных SQL Azure»