問題タブ [spark-csv]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scala - spark-csv パッケージの inferSchema
Spark で CSV をデータフレームとして読み取ると、すべての列が文字列として読み取られます。列の実際のタイプを取得する方法はありますか?
次のcsvファイルがあります
以下のコードを使用してCSVを読みました
すべての列が文字列として読み取られます。列year_of_experienceはintとして読み取られ、DOBはdateとして読み取られることを期待しています
オプションinferSchemaをtrueに設定したことに注意してください。
spark-csv パッケージの最新バージョン (1.0.3) を使用しています
ここで何か不足していますか?
apache-spark - Pyspark (YARN) 1.3 を使用して DataFrame を作成 -> 単一の CSV ファイル ('spark-csv')
YARN クラスターの Spark 1.3 で Pyspark を使用しています。管理ノードを使用して Pyspark コマンドを実行し、DataFrame を作成しています。次に、管理ノードで Spark データフレームを単一の CSV に移動しようとしていますが、ファイルが見つかりません。「ホーム」ディレクトリを指定してもうまくいかないようで、一貫して LOG メッセージが表示されるため、クラスタ内の別のノードでファイルが完了していると思われます。それでも、.csv ファイルを見つけることなく、すべてのノードを検索しました。「.save」コマンドを複数回実行しようとすると、追加できないと表示されるため、ファイルが実際にどこかに作成されていると思われます。csv コマンドを実行した後のログの一部を次に示します。
コマンドラインでこれを起動しています:
そして、以下を実行して Dataframe を作成し、PySpark で Export を試みます。
apache-spark - Spark Dataframe で完全な列の内容を表示するには?
spark-csv を使用してデータを DataFrame にロードしています。簡単なクエリを実行してコンテンツを表示したい:
列が切り捨てられているようです:
列の内容全体を表示するにはどうすればよいですか?
python-2.7 - 圧縮ファイルが渡されると、Spark-csv が返され、空の DataFrame が返される
最終的に SparkSQL を使用してクエリを実行できるように、いくつかの圧縮された csv ファイルを DataFrame に取り込もうとしています。私は通常 sc.textFile() を使用してファイルを消費し、さまざまな map() 変換を使用してデータを解析および変換しますが、問題のファイルには解析が難しい値がいくつかあります。特に、内部にコンマを含む引用符でカプセル化された値があり、map() 変換内で split() 関数を使用するオプションが壊れています。
これが私がやっていることです:
spark-csv および commons-csv jar を使用して spark を起動します
私のcsvにはヘッダーがないため、スキーマ変数を作成してから、以下の呼び出しを行います
これは、apps_df.printSchema() を使用すると正しいスキーマを持つ DataFrame オブジェクトを返しますが、apps_df.count() は 0 を返し、apps_df.first() は何も返しません。
編集:
これが私の、うまくいけば、再現可能な例です
full_filepathをディレクトリ内の .csv ファイルに置き換えます
full_gzip_filepathをディレクトリ内の csv ファイルの .gz バージョンに置き換えます
これは以下を返します:
次のいくつかのコマンドも実行すると、ファイルが pandas を介して適切に消費されることがわかります。
これは以下を返します: