2
Spark:私のユースケースでPythonがScalaを大幅に上回っているのはなぜですか?
PythonとScalaを使用しているときのSparkのパフォーマンスを比較するために、両方の言語で同じジョブを作成し、ランタイムを比較しました。私は両方のジョブにほぼ同じ時間がかかると予想していましたが、Pythonのジョブだけがかかりましたが27min、Scalaのジョブはかかりました37min(ほぼ40%長くなります!)。私はJavaにも同じジョブを実装しましたが、それもかかり37minutesました。どうしてこれがPythonがそんなに速いのか 最小限の検証可能な例: Pythonジョブ: # Configuration conf = pyspark.SparkConf() conf.set("spark.hadoop.fs.s3a.aws.credentials.provider", "org.apache.hadoop.fs.s3a.AnonymousAWSCredentialsProvider") conf.set("spark.executor.instances", "4") conf.set("spark.executor.cores", "8") sc = pyspark.SparkContext(conf=conf) # 960 Files from a public dataset in 2 batches input_files = "s3a://commoncrawl/crawl-data/CC-MAIN-2019-35/segments/1566027312025.20/warc/CC-MAIN-20190817203056-20190817225056-00[0-5]*" input_files2 = "s3a://commoncrawl/crawl-data/CC-MAIN-2019-35/segments/1566027312128.3/warc/CC-MAIN-20190817102624-20190817124624-00[0-3]*" # Count occurances of a certain string logData = sc.textFile(input_files) logData2 = sc.textFile(input_files2) a = logData.filter(lambda value: …