Databricks: パンダから Spark データ フレームを作成するときに問題が発生する 質問する

Databricks: パンダから Spark データ フレームを作成するときに問題が発生する 質問する

パンダのデータフレームがあり、これを Spark データフレームに変換したいと考えています。通常、以下のコードを使用してパンダから Spark データフレームを作成しますが、突然以下のエラーが発生し始めました。パンダが iteritems() を削除したことはわかっていますが、現在のパンダのバージョンは 2.0.0 であり、より低いバージョンをインストールして Spark DF を作成しようとしましたが、同じエラーが引き続き発生します。エラーは Spark 関数内で呼び出されます。この解決策は何ですか? Spark DF を作成するには、どのバージョンのパンダをインストールする必要がありますか。また、クラスター データブリックスのランタイムを変更して再実行しようとしましたが、同じエラーが引き続き発生します。

import pandas as pd
spark.createDataFrame(pd.DataFrame({'i':[1,2,3],'j':[1,2,3]}))

error:-
UserWarning: createDataFrame attempted Arrow optimization because 'spark.sql.execution.arrow.pyspark.enabled' is set to true; however, failed by the reason below:
  'DataFrame' object has no attribute 'iteritems'
Attempting non-optimization as 'spark.sql.execution.arrow.pyspark.fallback.enabled' is set to true.
  warn(msg)
AttributeError: 'DataFrame' object has no attribute 'iteritems'

ベストアンサー1

これは、使用されている Databricks Runtime (DBR) のバージョンに関連しています。DBR 12.2 までの Spark バージョンは、.iteritemsPandas DataFrame から Spark DataFrame を構築するために関数に依存しています。この問題は、DBR 13.x として利用可能な Spark 3.4 で修正されました。

DBR 13.x にアップグレードできない場合は、ノートブックのコマンドを使用して、Pandas を最新の 1.x バージョン (現在は 1.5.3) にダウングレードする必要があります%pip install -U pandas==1.5.3。DBR に同梱されている Pandas バージョンを使用する方がよいですが、DBR 内の他のパッケージとの互換性がテストされています。

おすすめ記事