Dataikuからローカルにデータフレームを読み込む際のpandasのエラーについて

希
Partner, Dataiku DSS Core Designer, Dataiku DSS ML Practitioner, Dataiku DSS Adv Designer, Registered Posts: 21 Partner

以下のリンクをもとに環境からdataikuライブラリをpip installし、ローカルのJupiter Labを用いてデータフレームを読み込んでいます。

https://developer.dataiku.com/latest/tutorials/devtools/python-client/index.html?_gl=17h57bg_gcl_awR0NMLjE3MzMwOTc2OTUuQ2owS0NRaUFyN0M2QmhEUkFSSXNBT1VLaWZqTWp2WklFOHRDSklnUlBtRjRLeGhGejJyM1NmSi0tckZmeERac0t2TkljUWc1dEpoRXp1b2FBZ3kzRUFMd193Y0I._gcl_auNTI1MTcyMTY4LjE3MzI1ODQ2MjE._gaNzI0NzQyNTk0LjE3MzI0OTg4MDg._ga_B3YXRYMY48*MTczMzI3NDcxMy4yNy4xLjE3MzMyNzY2NTcuNTYuMC4w

コード環境を設定の上、必要なライブラリをインポートし、以下のようなスクリプトを作成しています。

import dataiku
import pandas as pd

# DSS サーバーに接続
dataiku.set_remote_dss("URL", "KEY", no_check_certificate=True)
client = dataiku.api_client()

# プロジェクトキーとデータセット名を指定
project_key = "MY_PROJECT"
dataset_name = "MY_DATASET"

dataiku.set_default_project_key(project_key)
dataset = dataiku.Dataset(dataset_name)
df = dataset.get_dataframe()

実行すると、以下のエラーが発生します。

---------------------------------------------------------------------------
NameError Traceback (most recent call last)
Cell In[42], line 14
12 dataiku.set_default_project_key(project_key)
13 dataset = dataiku.Dataset(dataset_name)
---> 14 df = dataset.get_dataframe()
15 df

File ~\dataiku_local_env\lib\site-packages\dataiku\core\dataset.py:761, in Dataset.get_dataframe(self, columns, sampling, sampling_column, limit, ratio, ascending, infer_with_pandas, parse_dates, bool_as_str, int_as_float, use_nullable_integers, categoricals, float_precision, na_values, keep_default_na, print_deep_memory_usage, skip_additional_data_checks, date_parser, override_dtypes, pandas_read_kwargs)
758 with warnings.catch_warnings() as w:
759 warnings.filterwarnings("ignore", category=FutureWarning) # Remove date_parser warning
--> 761 results = pd.read_table(dku_output,
762 names=names,
763 dtype=dtypes,
764 header=None,
765 sep=CSV_SEP,
766 doublequote=CSV_DOUBLE_QUOTE,
767 quotechar=CSV_QUOTE_CHAR,
768 parse_dates=parse_date_columns,
769 float_precision=float_precision,
770 na_values=na_values,
771 keep_default_na=keep_default_na,
772 **pandas_read_kwargs)
773 results = pandas_date_parser_compat(results, parse_date_columns, date_parser)
775 # stream seems to have run fine. 'Seems'. Verify that.
776 # note to self: this call has to be made after the dataframe creation, because it is streamed

NameError: name 'pd' is not defined

pandasのライブラリがimport pandas as pdのような形でdataset.pyに定義されていないことが原因だと考えられますが、Dataikuの環境にあるライブラリをpip installしただけなので修正方法が不明です。

ご教示お願いします。

Operating system used: Windows

Answers

  • Tsuyoshi
    Tsuyoshi Dataiker, PartnerAdmin, Dataiku DSS Core Designer, Dataiku DSS ML Practitioner, Dataiku DSS Adv Designer, Registered Posts: 144 Dataiker
    edited December 18

    私の環境(Dataiku 13.3.0 を利用してpip install)で試したところ、特に問題なくご記載のPythonコードを実行することができました。

    そこで、特定のバージョンに依存した問題の可能性もございますので、上記エラーが発生した環境でご利用のDataiku ライブラリ バージョンをご教示いただけますでしょうか?

  • 希
    Partner, Dataiku DSS Core Designer, Dataiku DSS ML Practitioner, Dataiku DSS Adv Designer, Registered Posts: 21 Partner
    edited December 19

    @Tsuyoshi

    Dataikuのバージョンですが、検証いただいた環境と同じで、

    13.3.0

    でした。

    差分としてはDataikuのCloud Stacksを使用しております。

  • Tsuyoshi
    Tsuyoshi Dataiker, PartnerAdmin, Dataiku DSS Core Designer, Dataiku DSS ML Practitioner, Dataiku DSS Adv Designer, Registered Posts: 144 Dataiker

    ご連絡ありがとうございます。そうしますと、Cloud Stacksに同梱されているライブラリーに起因したエラーの可能性もあるかもしれません。

    今回は具体的なエラーが発生している状況ですので、Dataikuサポートにお問合せいただくことが可能と考えております。お手数ですが、お客様・パートナー様に共有されているガイドラインに沿って、技術サポートへのお問合せを頂けますと幸いです🙇‍♂️

Setup Info
    Tags
      Help me…