Sparkが初めてで、これを見つけることができません... s3
場所:
s3://a-dps/d-l/sco/alpha/20160930/parquet/
このフォルダーの合計サイズは20+ Gb
、。これをデータフレームにチャンクして読み込む方法これらすべてのファイルをデータフレームに読み込む方法は?
sparkクラスターに割り当てられたメモリは6 GBです。
from pyspark import SparkContext
from pyspark.sql import SQLContext
from pyspark import SparkConf
from pyspark.sql import SparkSession
import pandas
# SparkConf().set("spark.jars.packages","org.Apache.hadoop:hadoop-aws:3.0.0-alpha3")
sc = SparkContext.getOrCreate()
sc._jsc.hadoopConfiguration().set("fs.s3.awsAccessKeyId", 'A')
sc._jsc.hadoopConfiguration().set("fs.s3.awsSecretAccessKey", 's')
sqlContext = SQLContext(sc)
df2 = sqlContext.read.parquet("s3://sm/data/scor/alpha/2016/parquet/*")
エラー:
Py4JJavaError:o33.parquet。 の呼び出し中にエラーが発生しました。 .fs.FileSystem.getFileSystemClass(FileSystem.Java:2660) at org.Apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.Java:2667) at org.Apache.hadoop.fs .org.Apache.hadoop.fs.FileSystem $ Cache.getInternal(FileSystem.Java:2703) at org.Apache.hadoopの.FileSystem.access $ 200(FileSystem.Java:94) fs.FileSystem $ Cache.get(FileSystem.Java:2685) at org.Apache.hadoop.fs.FileSystem.get(FileSystem.Java:373) at org.Apache.hadoop fs.Path.getFileSystem(Path.Java:295) org.Apache.spark.sql.execution.datasources.DataSource $$ anonfun $ 14.apply(DataSource.scala:372) でorg.Apache.spark.sql.execution.datasources.DataSource $$ anonfun $ 14.apply(DataSource.scala:370) at scala.collection.TraversableLike $$ anonfun $ flatMap $ 1.apply(TraversableLike.scala:241) scala.collection.TraversableLike $$ anonfun $ flatMap $ 1.apply(TraversableLike.scala:241) at scala.collection.immutable .List.foreach(List.scala:381) at scala.collection.TraversableLike $ class.flatMap(TraversableLike.scala:241) at scala.collection.immutable.List.flatMap(List .scala:344)
使用しているファイルスキーマ(s3
)が正しくありません。 s3n
スキーマまたはs3a
(より大きなs3オブジェクトの場合)を使用する必要があります。
// use sqlContext instead for spark <2
val df = spark.read
.load("s3n://bucket-name/object-path")
Hadoop-AWSモジュール:アマゾンウェブサービスとの統合の概要 について詳しく読むことをお勧めします。
Spark 2.0なので、sqlContextではなくSparkSessionを使用する必要があります
spark = SparkSession.builder
.master("local")
.appName("app name")
.config("spark.some.config.option", true).getOrCreate()
df = spark.read.parquet("s3://path/to/parquet/file.parquet")