4

私は2つのJupyterノートブックを使用して、分析でさまざまなことを行っています。Sparkから書かれたPySparkの寄木細工を読むにはどうすればよいですか?

partitionedDF.select("noStopWords","lowerText","prediction").write.save("swift2d://xxxx.keystone/commentClusters.parquet") 

は、私は、データを読み込むために私のPythonのノートブックに行く:私のScalaのノートブックでは、私は寄木細工に私の掃除のデータの一部を書き

df = spark.read.load("swift2d://xxxx.keystone/commentClusters.parquet") 

と私は次のエラーを取得する:

AnalysisException: u'Unable to infer schema for ParquetFormat at swift2d://RedditTextAnalysis.keystone/commentClusters.parquet. It must be specified manually;' 

私はスパークのドキュメントを見て、私はスキーマを指定する必要があるとは思わないと思います。誰かがこれのようなものに遭遇したのですか?私は保存/読み込み時に何か他のことをしなければならないのでしょうか?データがObject Storageに格納されています。

編集: 私は、読み取りと書き込みの両方で火花2.0を歌います。

EDIT2:これは、データ・サイエンスの経験では、プロジェクトで行われた 。

+1

ここでは[要旨](https://gist.github.com/jtyberg/9f8480724634c764d3c73c8e989fa8f9)は、寄木細工のファイルとしてデータフレームを読み取り/書き込みすることですスウィフトから/へ。それは単純なスキーマ(すべての "文字列"型)を使用しています。あなたのDataFrameのスキーマは何ですか?スパークは、私は、スキーマを推測しようとしますが、「現時点では、数値データ型と文字列型がサポートされています」(http://spark.apache.org/docs/latest/sql-programming-guide.html#partition-discoveryを参照してください) – jtyberg

+0

あなたは私の質問に答えてくれたと信じている!列「noStopWords」は単語のベクトルです。この列でdfを保存/ロードするにはどうすればよいですか? –

答えて

1

あなたは寄木細工のファイルを読むためにスパーク・セッションのparquetフォーマットを使用することができます。このように:

df = spark.read.parquet("swift2d://xxxx.keystone/commentClusters.parquet") 

ものの、parquetload機能に違いはありません。それはloadは、ファイル(例えば、parquetからloadにより識別または特定されていないいくつかのデータ型)でデータのスキーマを推測することはできないという場合があります。

+0

フィードバックありがとうございますが、これは同じエラーで終了しました。私は他のことを試し続けます。 –

+0

チュートリアルがあります:http://datascience.ibm.com/blog/upload-files-to-ibm-data-science-experience-using-the-command-line-2/ – aruizga

5

Iは次のように寄木細工のファイルを読み込む:

from pyspark.sql import SparkSession 
# initialise sparkContext 
spark = SparkSession.builder \ 
    .master('local') \ 
    .appName('muthootSample1') \ 
    .config('spark.executor.memory', '5gb') \ 
    .config("spark.cores.max", "6") \ 
    .getOrCreate() 

sc = spark.sparkContext 

# using SQLContext to read parquet file 
from pyspark.sql import SQLContext 
sqlContext = SQLContext(sc) 

# to read parquet file 
df = sqlContext.read.parquet('path-to-file/commentClusters.parquet') 
関連する問題