2017-07-10 8 views
0

私はスパークにはとても新しいと言って序文にしたいと思います。私はスパークで走る必要があるパンダに関する作業プログラムを持っています。私はこれを行うためにDatabricksを使用しています。 'sqlContext'と 'sc'を初期化した後、私はCSVファイルを読み込み、Sparkデータフレームを作成します。これを実行した後、私はこのデータフレームをPandasデータフレームに変換します。ここで私はすでに必要なことをするためのコードを書いています。SparkのPandasコマンドでエラーが発生しましたか?

目的:CSVファイルを読み込んでデータ型を識別し、各列のデータ型を返す必要があります。トリッキーな部分は、日付がさまざまな形式になっていることです。この形式では、(このコミュニティの助けを借りて)正規表現をマッチさせるために書いています。私はすべてのデータ型に対してこれを行います。最後に、列を正しい型に変換し、各列の型を印刷します。

成功裏に私のパンダのデータフレームをロードした後、私はこのエラーを取得しています:

私はこれをトリガしている実行しているコードを:「例外TypeError to_numericは() 『意気消沈』予想外のキーワード引数を得ました」

# Changing the column data types 
if len(int_count) == len(str_count): 
    df[lst[col]] = pd.to_numeric(df[lst[col]], errors='coerce', downcast='integer') 
if len(float_count) == len(str_count): 
    df[lst[col]] = pd.to_numeric(df[lst[col]], errors='coerce', downcast='float') 
if len(boolean_count) == len(str_count): 
    df[lst[col]] = df[lst[col]].astype('bool') 
if len(date_count) == len(str_count): 
    df[lst[col]] = pd.to_datetime(df[lst[col]], errors='coerce') 

'lst'は列ヘッダーで、 'col'は列ヘッダーを反復処理するために使用した変数です。このコードは、PyCharm上で動作しているときに完全に機能しました。なぜSparkでこのエラーが発生するのかわからない。

助けがあれば助かります。あなたのコメントから

+0

'df'、パンダのデータフレームまたはスパーク1とは何ですか?そして、正確なコマンドでエラーが起きますか?あなたのコードの詳細を共有しても害はありません... – desertnaut

+0

@desertnaut dfは私のPandasデータフレームです。それはエラーであるダウンキャストで私の最初のコマンドであることを拾っている。私はここに私のコード全体を載せたくありませんでしたが、私が喜んで投稿する情報はこれ以上ありません。 – rmahesh

+0

だから、パンダ関連の質問のように聞こえます.Sparkが何をしなければならないのか(最初のデータフレームを変換すること以外は)見ることができません。私は、最初のデータをパンダに直接ロードすることをお勧めします - あなたがまだこの問題に直面している場合、それは実際にはスパークとは関係ありません(いずれにせよ、 'スパークのpandasコマンド'は問題の正確な説明ではありません)。 – desertnaut

答えて

1

I have tried to load the initial data directly into pandas df but it has consistently thrown me an error, saying the file doesn't exist, which is why I have had to convert it after loading it into Spark.

だから、私の答えはここだけ、あなたの本当の問題のようですDatabricksクラウド(コミュニティ版)へデータをアップロードすると、スパークとは何の関係もありません。私たちのアップロードされたファイルの実際のパスを含む

enter image description here

は、クラスタを初期化し、ファイルuser_info.csvをアップロードした後、我々は、このスクリーンショットを取得します。

import pandas as pd 
pandas_df = pd.read_csv("/FileStore/tables/1zpotrjo1499779563504/user_info.csv") 
[...] 
IOError: File /FileStore/tables/1zpotrjo1499779563504/user_info.csv does not exist 

、なぜならinstructionsが明確に言及して、その場合の(つまり:あなたはパンダと、この正確なパスを使用しようと

、Databricksノートで、あなたはFile does not existエラーが発生しますあなたはパンダまたはその代わりにスパークのRに直接ロードしたいファイル)あなたは/dbfsでファイルパスを付加する必要があります。

pandas_df = pd.read_csv("/dbfs/FileStore/tables/1zpotrjo1499779563504/user_info.csv") # works OK 
pandas_df.head() # works OK 
+0

答えを返していただきありがとうございます!私はパンダのデータフレームとして直接アップロードすることができますが、私はもともと言及したのと同じエラーを受けています。なぜ私はそれがうまくいかないのか分からないので、私はどのコミュニティに手を差し伸べるべきか分かりません。もしこれが役立つなら、私のコード全体がここにあります:http://www.codesend.com/view/19783918ed48c5546829571fda051986/ – rmahesh

+0

@rmahesh少なくとも、あなたはそれがスパークに起因していないことを知っていますので、間違いなく私の答えはそのメリット(あなたはそれをアップアップすることもできます)。バージョン非互換性をチェックする(Databricks CEはPython 2.7.12とpandas 0.18.1を実行する)、エラーが続く場合は、Databricks https://forums.databricks.com/ – desertnaut

+1

で問題を提起してください。あなたの答えは間違いなくメリットがありますすべての情報を提供する。私はこのエラーでDatabricksに連絡します、もう一度ありがとうございます。 – rmahesh

関連する問題