স্পার্ক - ত্রুটি একটি অ্যাপ্লিকেশন জমা দেওয়ার সময় "আপনার কনফিগারেশনে একটি মাস্টার ইউআরএল সেট করা আবশ্যক"


95

আমার একটি স্পার্ক অ্যাপ রয়েছে যা স্থানীয় মোডে কোনও সমস্যা ছাড়াই চলে তবে স্পার্ক ক্লাস্টারে জমা দেওয়ার সময় কিছু সমস্যা হয়।

ত্রুটির চিত্রটি নিম্নরূপ:

16/06/24 15:42:06 WARN scheduler.TaskSetManager: Lost task 2.0 in stage 0.0 (TID 2, cluster-node-02): java.lang.ExceptionInInitializerError
    at GroupEvolutionES$$anonfun$6.apply(GroupEvolutionES.scala:579)
    at GroupEvolutionES$$anonfun$6.apply(GroupEvolutionES.scala:579)
    at scala.collection.Iterator$$anon$14.hasNext(Iterator.scala:390)
    at org.apache.spark.util.Utils$.getIteratorSize(Utils.scala:1595)
    at org.apache.spark.rdd.RDD$$anonfun$count$1.apply(RDD.scala:1157)
    at org.apache.spark.rdd.RDD$$anonfun$count$1.apply(RDD.scala:1157)
    at org.apache.spark.SparkContext$$anonfun$runJob$5.apply(SparkContext.scala:1858)
    at org.apache.spark.SparkContext$$anonfun$runJob$5.apply(SparkContext.scala:1858)
    at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:66)
    at org.apache.spark.scheduler.Task.run(Task.scala:89)
    at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:214)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.spark.SparkException: A master URL must be set in your configuration
    at org.apache.spark.SparkContext.<init>(SparkContext.scala:401)
    at GroupEvolutionES$.<init>(GroupEvolutionES.scala:37)
    at GroupEvolutionES$.<clinit>(GroupEvolutionES.scala)
    ... 14 more

16/06/24 15:42:06 WARN scheduler.TaskSetManager: Lost task 5.0 in stage 0.0 (TID 5, cluster-node-02): java.lang.NoClassDefFoundError: Could not initialize class GroupEvolutionES$
    at GroupEvolutionES$$anonfun$6.apply(GroupEvolutionES.scala:579)
    at GroupEvolutionES$$anonfun$6.apply(GroupEvolutionES.scala:579)
    at scala.collection.Iterator$$anon$14.hasNext(Iterator.scala:390)
    at org.apache.spark.util.Utils$.getIteratorSize(Utils.scala:1595)
    at org.apache.spark.rdd.RDD$$anonfun$count$1.apply(RDD.scala:1157)
    at org.apache.spark.rdd.RDD$$anonfun$count$1.apply(RDD.scala:1157)
    at org.apache.spark.SparkContext$$anonfun$runJob$5.apply(SparkContext.scala:1858)
    at org.apache.spark.SparkContext$$anonfun$runJob$5.apply(SparkContext.scala:1858)
    at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:66)
    at org.apache.spark.scheduler.Task.run(Task.scala:89)
    at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:214)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)

উপরের কোডে, GroupEvolutionESপ্রধান বর্গ হয়। ত্রুটি বার্তা বলছেন "একটি মাস্টার URL আপনার কনফিগারেশনে সেট করা আবশ্যক", কিন্তু আমি "--master" এ প্যারামিটার প্রদান করে spark-submit

যে কেউ এই সমস্যাটি কিভাবে সমাধান করবেন জানেন?

স্পার্ক সংস্করণ: 1.6.1


4
আপনি দয়া করে এখানে যে কমান্ডটি স্ক্রিপ্ট জমা দেওয়ার জন্য ব্যবহার করছেন তা পেস্ট করতে পারেন।
শিব 4 নশ

আপনি কি স্পার্ক মাস্টার ইউআরএল সরবরাহ করেছেন?
ক্ষিতিজ কুলশ্রেষ্ঠ

@ শিভাংশশ্রীবাস্তব স্পার্ক জমা দিন - ক্লাস গ্রুপএভলিউশনস - মাস্টার স্পার্ক: // ক্লাস্টার-নোড-এনএন 1: 7077 - জার্স $ মাইপাথ মাইয়াপ.জার
শুই জাং

@ কেসিটিজকুলশ্রেস্টা হ্যাঁ
শুয়াই জাং

আমি আমার এই গাড়ীতে আঘাত Sparkপ্রকল্পের ইউনিট-পরীক্ষা ( DataFrameSuiteBase)। থেকে @Dazzler এর উত্তর, আমি বুঝলাম যে আমি নড়তেও আবশ্যক DataFrame-creation ভিতরে test(..) { .. }সংকলনের। কিন্তু মাত্র প্রকাশক DataFrameগুলি হতেlazy সংশোধন করা হয়েছে এটা (প্রেম Scala!)। এই হয়েছে সরু আউট হতে @gyuseong মধ্যে তার উত্তর নিচে
Y2K-shubham

উত্তর:


40

স্পার্ক কনটেক্সট অবজেক্টটি কোথায় সংজ্ঞায়িত করা হয়েছে, এটি মূল ফাংশনের ভিতরে রয়েছে?

আমিও একই সমস্যার মুখোমুখি হয়েছি, আমি যে ভুলটি করেছিলাম তা আমি মূল ফাংশনের বাইরে এবং ক্লাসের ভিতরে স্পার্ক কনটেক্সট শুরু করেছিলাম।

আমি যখন এটি মূল ফাংশনের ভিতরে শুরু করেছি, এটি দুর্দান্ত কাজ করেছে।


12
স্পার্ককে সত্যিকারের উন্নতি করতে হবে: যখন কিছু ভুল হয় তখন এটি খুব বিভ্রান্তিকর এবং অজানা ত্রুটি বার্তাগুলি দেখায়
শুই জাং

4
এটি একটি সমাধান নয়, কোনও সমাধান নয়, যদি আমি একক সংক্ষেপণ তৈরি করতে চাই এবং একাধিক অ্যাপ্লিকেশনের জন্য মূল ফাংশন বাদে কনটেক্সটের একটি পৃথক স্তর তৈরি করতে চাই?
মুর্তজা কাঁচওয়ালা

4
"নোট করুন অ্যাপ্লিকেশনগুলির main()প্রসারিতের পরিবর্তে কোনও পদ্ধতি নির্ধারণ করা উচিত of এর scala.Appসাবক্লাসগুলি scala.Appসঠিকভাবে কাজ করতে পারে না।" স্পার্ক 2.1.0 ম্যানুয়াল
রুহং

4
আপনি যেখানে getOrCreate()প্রসঙ্গটি চেষ্টা করছেন সেদিকে মনোযোগ দিন ড্রাইভার পর্যায়ে তৈরি করা উচিত এবং প্রয়োজনীয় হিসাবে নির্বাহক স্তরে প্রেরণ করা উচিত।
রিম

144

টিএলডিআর:

.config("spark.master", "local")

স্পার্ক ২.২.১-এ স্পার্ক.মাস্টারের বিকল্পগুলির একটি তালিকা

স্থানীয় মোডে একটি সাধারণ স্পার্ক এসকিউএল জাভা প্রোগ্রাম চালানোর চেষ্টা করার পরে আমি এই পৃষ্ঠায় শেষ হয়েছি। এটি করার জন্য, আমি দেখতে পেয়েছি যে আমি স্পার্ক.মাস্টার ব্যবহার করে সেট করতে পারি:

SparkSession spark = SparkSession
.builder()
.appName("Java Spark SQL basic example")
.config("spark.master", "local")
.getOrCreate();

আমার উত্তরের একটি আপডেট:

স্পষ্টরূপে, উত্পাদনের পরিবেশে এটি করা উচিত নয়। উত্পাদনের পরিবেশে, স্পার্ক.মাস্টার অন্য কয়েকটি স্থানে একটি নির্দিষ্ট করে নির্দিষ্ট করা উচিত: either স্পার্কহোম / কনফার্ট / স্পার্ক-ডিফল্টসকন্টে (এটি যেখানে ক্লৌডের ম্যানেজার এটি রাখবে), বা কমান্ড লাইনে আপনি জমা দেওয়ার সময় অ্যপ. (প্রাক্তন স্পার্ক জমা - মাস্টার সুতা)

যদি আপনি এইভাবে স্পার্ক.মাস্টারকে 'স্থানীয়' হতে নির্দিষ্ট করেন তবে স্পার্কটি নীচের মন্তব্যে নির্দেশিত হিসাবে একক জেভিএম চালানোর চেষ্টা করবে। আপনি যদি পরে --deploy- মোড ক্লাস্টার নির্দিষ্ট করার চেষ্টা করেন, আপনি একটি ত্রুটি পাবেন 'ক্লাস্টার ডিপ্লয়ে মোড মাস্টার "স্থানীয়" এর সাথে সামঞ্জস্যপূর্ণ নয়। এটি কারণ স্পার্ক.মাস্টার = স্থানীয় সেট করার অর্থ আপনি ক্লাস্টার মোডে চলছেন না।

পরিবর্তে, কোনও প্রোডাকশন অ্যাপের জন্য, আপনার মূল ফাংশনের মধ্যে (বা আপনার মূল ফাংশন দ্বারা ডাকা ফাংশনগুলিতে), আপনার সহজভাবে ব্যবহার করা উচিত:

SparkSession
.builder()
.appName("Java Spark SQL basic example")
.getOrCreate();

এটি কমান্ড লাইনে / কনফিগার ফাইলগুলিতে নির্দিষ্ট করা কনফিগারেশন ব্যবহার করবে।

এছাড়াও, এ সম্পর্কেও পরিষ্কার হতে হবে: - মাস্টার এবং "স্পার্ক.মাস্টার" হুবহু একই পরামিতি, কেবল বিভিন্ন উপায়ে নির্দিষ্ট করা হয়েছে। উপরের আমার উত্তরের মত কোডে স্পার্ক.মাস্টার সেট করা - - মাস্টার সেট করার প্রয়াসকে ওভাররাইড করবে এবং স্পার্ক-ডিফল্টকন্টে মানগুলিকে ওভাররাইড করবে, সুতরাং এটি উত্পাদন করে না। যদিও এটি পরীক্ষার জন্য দুর্দান্ত।

এছাড়াও, এই উত্তর দেখুন । কোনটি স্পার্ক.মাস্টারের বিকল্পগুলির তালিকার সাথে লিঙ্ক করে এবং প্রত্যেকে আসলে কী করে।

স্পার্ক ২.২.১-এ স্পার্ক.মাস্টারের বিকল্পগুলির একটি তালিকা


4
হ্যাঁ, ".config (" স্পার্ক.মাস্টার "," স্থানীয় ") যোগ করে আমার পক্ষেও কাজ করে।
আশুতোষ এস

ধন্যবাদ এটি আমার পক্ষে কাজ করেছে - তবে কেউ কি কোনও নবজাতককে (আমাকে) ব্যাখ্যা করতে পারে যে .config ("স্পার্ক.মাস্টার", "স্থানীয়") কী করছে? আমার কোডটি কি এখনও জারে সংকলন করে উত্পাদন চালানো ভাল হবে?
ব্যবহারকারী 1761806

4
@ ব্যবহারকারী 1761806 উত্তর যখন বেশিরভাগ ক্ষেত্রে এটি স্থির হিসাবে হিসাবে রিপোর্ট করে তবে এটি মৌলিকভাবে শুধুমাত্র একটি একক জেভিএম ব্যবহার করে স্পার্ক প্রসেসের পদ্ধতি পরিবর্তন করে। স্থানীয় স্থানীয় পরীক্ষার জন্য ব্যবহৃত হয় এবং যদি আপনি একটি ক্লাস্টারে মোতায়েন করার ইচ্ছা করেন তবে এই সমস্যাটি সমাধানের সঠিক সমাধান নয়। আমার অনুরূপ সমস্যা ছিল এবং গ্রহণযোগ্য উত্তর ছিল আমার সমস্যার সঠিক সমাধান।
নাথানিয়েল ভেন্ডেট

59

প্রতিস্থাপনের পরে আমার জন্য কাজ করেছেন

SparkConf sparkConf = new SparkConf().setAppName("SOME APP NAME");

সঙ্গে

SparkConf sparkConf = new SparkConf().setAppName("SOME APP NAME").setMaster("local[2]").set("spark.executor.memory","1g");

স্ট্যাকওভারফ্লোতে অন্য কোনও থ্রেডে এই সমাধানটি পাওয়া গেছে।


4
আপনি স্যার, আমার দিন বাঁচিয়েছেন ... ধন্যবাদ!
হাকো

4
এটি কি ওপির প্রশ্ন সমাধান করে? এটি এই জেভিএমে একটি স্থানীয় ক্লাস্টার তৈরি করে, অন্য কোথাও স্ট্যান্ডেলোন সংযুক্ত নয়।
Azeroth2b

এটি সমস্যার সমাধান করে। (এর setMaster("local[2]")ব্যাখ্যা) ভাল লাগবে (এর ব্যাখ্যা ) সম্পর্কে আমি এখনও জানি না , তবে এই উত্তরটি সমস্যার সমাধান হিসাবে বিবেচনা করা যেতে পারে।
রিক

এই তথ্য অন্তর্ভুক্ত করার জন্য আমি কেবল উত্তর সম্পাদনা করেছি :)
রিক

26

যে চলমান স্বতন্ত্র ক্লাস্টার থেকে একটি সেশন পেতে পোর্ট, এবং নিচের কোডটি চেষ্টা: "spark.master" ডিফল্ট মান স্ফুলিঙ্গ হয়: // host host: port , এবং আশা host: port মান হতে স্পার্ক কনফিগারেশন ফাইল।

SparkSession spark = SparkSession
    .builder()
    .appName("SomeAppName")
    .getOrCreate();

" org.apache.spark.SparkException: আপনার কনফিগারেশনে একটি মাস্টার ইউআরএল সেট করা আবশ্যক " উল্লেখ করেছে যে HOST: PORT স্পার্ক কনফিগারেশন ফাইলে সেট করা নেই।

"HOST: PORT" এর মান নিয়ে মাথা ঘামানোর জন্য স্পার্ক.মাস্টারকে স্থানীয় হিসাবে সেট করুন

SparkSession spark = SparkSession
    .builder()
    .appName("SomeAppName")
    .config("spark.master", "local")
    .getOrCreate();

এখানে ফর্ম্যাটগুলির তালিকার লিঙ্কটি যেখানে স্পষ্ট.মাষ্টারে মাস্টার ইউআরএল পাস করা যেতে পারে

তথ্যসূত্র: স্পার্ক টিউটোরিয়াল - স্পার্ক ইকোসিস্টেম সেটআপ করুন


অনেক ধন্যবাদ আপনি আমার দিন বাঁচাতে!
জেন্টলকডার

8

.setMaster("local")নীচে প্রদর্শিত হিসাবে কেবল আপনার কোড যুক্ত করুন :

val conf = new SparkConf().setAppName("Second").setMaster("local") 

এটা আমার জন্য কাজ! শুভ কোডিং!


6

আপনি যদি স্বতন্ত্র অ্যাপ্লিকেশনটি চালাচ্ছেন তবে আপনাকে তার SparkContextপরিবর্তে ব্যবহার করতে হবেSparkSession

val conf = new SparkConf().setAppName("Samples").setMaster("local")
val sc = new SparkContext(conf)
val textData = sc.textFile("sample.txt").cache()

4
.setMaster("local")আমার জন্য সমস্যাটি সমাধান করার মূল চাবিকাঠি
tom10271

আমার যদি এটি সেট থাকে তবে তবুও এই ত্রুটিটি থাকে? @ tom10271
আন্না লিওনেঙ্কো

@ আন্নালোওনেনকো আমি দুঃখিত, তবে আমি ইতিমধ্যে এক বছর ধরে স্পার্ক অ্যাপ্লিকেশন বিকাশ বন্ধ করে দিয়েছি, আমি আমার স্মৃতি স্মরণ করতে পারি না। তবে আমার ধারণা আপনার মাস্টার নোড স্থানীয় নয় যা স্পার্ক তবে সুতা দ্বারা পরিচালিত হয়?
tom10271

4
@ আন্নালোওনেনকো আমি আমার সেটিংস পরীক্ষা করেছি। আমি যখন স্থানীয়ভাবে এটি উন্নয়নের জন্য চালাচ্ছিলাম এবং আমি কেবল মাস্টার নোড পরিচালনা করার জন্য স্পার্ক ব্যবহার করি, তবে আমি এটিকে সেট করতে localবা এটিতে সেট করব local[*]। আমি যখন এটি yarn
এডাব্লুএস ইএমআরতে

3

আপনার আবেদনে স্পার্কের প্রসঙ্গটি স্পার্ক মাস্টারের মান কীভাবে তুলবে?

  • আপনি SparkConfএসসি তৈরি করার সময় তা স্পষ্টভাবে সরবরাহ করেছেন ।
  • অথবা এটি থেকে নেওয়া হয়েছে System.getProperties(যেখানে স্পার্কসবমিট আপনার --masterযুক্তি পড়ার আগে এটি রেখেছিল )।

এখন, SparkSubmitড্রাইভারের দিকে চলে - যা আপনার ক্ষেত্রে মেশিনটি যেখানে আপনি spark-submitস্ক্রিপ্টটি চালাচ্ছেন। এবং এটি সম্ভবত আপনার জন্যও প্রত্যাশার মতো কাজ করছে।

তবে আপনি যে তথ্য পোস্ট করেছেন তা থেকে দেখে মনে হচ্ছে আপনি নির্বাহকের কাছে প্রেরিত কোডটিতে একটি স্পার্ক প্রসঙ্গ তৈরি করছেন - এবং সেখানে কোনও spark.masterসিস্টেমের সম্পত্তি উপলব্ধ নেই তা ব্যর্থ হয়েছে। (এবং যদি সত্যিই তেমন হয় তবে আপনার উচিত হবে না))

আপনি কি দয়া করে GroupEvolutionESকোডটি পোস্ট করতে পারেন (বিশেষত যেখানে আপনি তৈরি করছেন SparkContext(s))।


4
হ্যাঁ. আমার গ্রুপ mainএভলিউশনেস (যা আমি করিনি) এর ফাংশনগুলিতে স্পার্ককন্টেক্সট তৈরি করা উচিত ছিল ।
শুয়াই জাং

4
এটি একটি সমাধান নয়, কোনও সমাধান নয়, যদি আমি একক সংক্ষেপণ তৈরি করতে চাই এবং একাধিক অ্যাপ্লিকেশনের জন্য মূল ফাংশন বাদে কনটেক্সটের একটি পৃথক স্তর তৈরি করতে চাই? আমি কীভাবে এটি অর্জন করতে পারি তার কোনও মন্তব্য?
মুর্তজা কাঁচওয়ালা

3

প্রতিস্থাপন করা হচ্ছে:

SparkConf sparkConf = new SparkConf().setAppName("SOME APP NAME");
WITH
SparkConf sparkConf = new SparkConf().setAppName("SOME APP NAME").setMaster("local[2]").set("spark.executor.memory","1g");

যাদু করল।


4
আপনার সমাধান @ সাচিন যে পোস্ট করেছেন ঠিক তার মতো নয়?
আকাওয়াল

স্থানীয় কেন [2] আপনি ব্যাখ্যা করতে পারেন
সুদর্শন

স্থানীয় সম্পর্কে [2] -> স্ট্যাকওভারফ্লো.com
raevilman

2

আমার একই সমস্যা ছিল, পরিবর্তনের আগে আমার কোডটি এখানে:

package com.asagaama

import org.apache.spark.SparkContext
import org.apache.spark.SparkConf
import org.apache.spark.rdd.RDD

/**
  * Created by asagaama on 16/02/2017.
  */
object Word {

  def countWords(sc: SparkContext) = {
    // Load our input data
    val input = sc.textFile("/Users/Documents/spark/testscase/test/test.txt")
    // Split it up into words
    val words = input.flatMap(line => line.split(" "))
    // Transform into pairs and count
    val counts = words.map(word => (word, 1)).reduceByKey { case (x, y) => x + y }
    // Save the word count back out to a text file, causing evaluation.
    counts.saveAsTextFile("/Users/Documents/spark/testscase/test/result.txt")
  }

  def main(args: Array[String]) = {
    val conf = new SparkConf().setAppName("wordCount")
    val sc = new SparkContext(conf)
    countWords(sc)
  }

}

এবং প্রতিস্থাপনের পরে:

val conf = new SparkConf().setAppName("wordCount")

সঙ্গে :

val conf = new SparkConf().setAppName("wordCount").setMaster("local[*]")

এটা ভাল কাজ!


2
var appName:String ="test"
val conf = new SparkConf().setAppName(appName).setMaster("local[*]").set("spark.executor.memory","1g");
val sc =  SparkContext.getOrCreate(conf)
sc.setLogLevel("WARN")

এই সমাধানটি আমার পক্ষে কাজ করেছিল। ওটা উপরে রাখার জন্য ধন্যবাদ। @ মারিও।
সিওয়াকু অ্যাডোলা

2

এটা চেষ্টা কর

বৈশিষ্ট্য তৈরি

import org.apache.spark.sql.SparkSession
trait SparkSessionWrapper {
   lazy val spark:SparkSession = {
      SparkSession
        .builder()
        .getOrCreate()
    }
}

এটি প্রসারিত

object Preprocess extends SparkSessionWrapper {

1

সেট করার জন্য আমরা সেটমাস্টার ("স্থানীয় [*]") মিস করছি । একবার আমরা যুক্ত করলে সমস্যাটি সমাধান হয়ে যায়।

সমস্যা:

val spark = SparkSession
      .builder()
      .appName("Spark Hive Example")
      .config("spark.sql.warehouse.dir", warehouseLocation)
      .enableHiveSupport()
      .getOrCreate()

সমাধান:

val spark = SparkSession
      .builder()
      .appName("Spark Hive Example")
      .config("spark.sql.warehouse.dir", warehouseLocation)
      .enableHiveSupport()
      .master("local[*]")
      .getOrCreate()

0

আপনি যদি নিম্নলিখিত কোড ব্যবহার করছেন

 val sc = new SparkContext(master, "WordCount", System.getenv("SPARK_HOME"))

তারপরে নিম্নলিখিত লাইনগুলির সাথে প্রতিস্থাপন করুন

  val jobName = "WordCount";
  val conf = new SparkConf().setAppName(jobName);
  val sc = new SparkContext(conf)

স্পার্ক ২.০ এ আপনি নিম্নলিখিত কোডটি ব্যবহার করতে পারেন

val spark = SparkSession
  .builder()
  .appName("Spark SQL basic example")
  .config("spark.some.config.option", "some-value")
  .master("local[*]")// need to add
  .getOrCreate()

আপনাকে এখানে মাস্টার যুক্ত করতে হবে ("স্থানীয় [*]") যদি লোকালটি চালানো হয় * এর অর্থ সমস্ত নোড, আপনি বলতে পারেন 8,2 ডলার ইত্যাদি অন্তর্নিহিত say

ক্লাস্টারে থাকলে আপনার মাস্টার ইউআরএল সেট করা দরকার


0

আপনি যদি জাভাস্পর্ককন্টেক্সটে স্পার্ক কনফিগারেশন সরবরাহ না করেন তবে আপনি এই ত্রুটিটি পান। তা হ'ল: জাভাস্পার্ককন্টেক্সট sc = নতুন জাভাস্পর্ককন্টেক্সট ();

সমাধান: জাভাস্পর্ককন্টেক্সট এসসি = নতুন জাভাস্পর্ককন্টেক্সট (কনফিড) সরবরাহ করুন;


0

স্থানীয় মেশিনে স্পার্ক প্রসঙ্গ স্থাপনের সাথে স্পার্ক প্রসেসিং শেখার ক্ষেত্রে এই বিকল্পটি ব্যবহার করে দেখুন। প্রয়োজনীয়তা ১) স্পার্ক সেশনার স্থানীয় অবস্থায় চলমান রাখুন ২) স্পার্ক মাভেন নির্ভরতা যুক্ত করুন 3) ইনপুট ফাইলটিকে মূল root ইনপুট ফোল্ডারে রাখুন)) আউটপুটটি \ আউটপুট ফোল্ডারে রাখা হবে। বছরের জন্য সর্বাধিক শেয়ার মান পাওয়া। ইয়াহু ফিনান্স থেকে কোনও সিএসভি লোড করুন https://in.finance.yahoo.com/quote/CAPPL.BO/history/ মাভেন নির্ভরতা এবং নীচে স্কালা কোড -

<dependencies>
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-core_2.11</artifactId>
            <version>2.4.3</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>   

object MaxEquityPriceForYear {
  def main(args: Array[String]) {
    val sparkConf = new SparkConf().setAppName("ShareMaxPrice").setMaster("local[2]").set("spark.executor.memory", "1g");
    val sc = new SparkContext(sparkConf);
    val input = "./input/CAPPL.BO.csv"
    val output = "./output"
    sc.textFile(input)
      .map(_.split(","))
      .map(rec => ((rec(0).split("-"))(0).toInt, rec(1).toFloat))
      .reduceByKey((a, b) => Math.max(a, b))
      .saveAsTextFile(output)
  }

0

আমি পরিবর্তে এই স্পার্ককন্টেক্সট কনস্ট্রাক্টর ব্যবহার করেছি এবং ত্রুটিগুলি চলে গেছে:

val sc = new SparkContext("local[*]", "MyApp")
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.