2つのJupyterノートブックを使用して、分析で異なることを実行しています。私のScalaノートブックには、寄せ集めにクリーニングしたデータの一部を書きます。
partitionedDF.select("noStopWords","lowerText","prediction").write.save("Swift2d://xxxx.keystone/commentClusters.parquet")
次にPythonノートブックにアクセスして、データを読み取ります。
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;'
sparkのドキュメントを見てきましたが、スキーマを指定する必要はないと思います。誰かがこのようなものに遭遇しましたか?保存/ロードするときに別のことをする必要がありますか?データはObject Storageに到着しています。
編集:私は読み取りと書き込みの両方でspark 2.0を歌っています。
edit2:これは、Data Science Experienceのプロジェクトで行われました。
私は寄木細工のファイルを次のように読みました:
from pyspark.sql import SparkSession
# initialise sparkContext
spark = SparkSession.builder \
.master('local') \
.appName('myAppName') \
.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')
Spark Sessionのparquet
形式を使用して、寄せ木細工のファイルを読み取ることができます。このような:
df = spark.read.parquet("Swift2d://xxxx.keystone/commentClusters.parquet")
ただし、parquet
関数とload
関数の間に違いはありません。 load
がファイル内のデータのスキーマを推測できない場合があります(たとえば、load
で識別できない、またはparquet
に固有のデータ型)。