2015-04-20 13 views
5

का उपयोग कर रहा चिंगारी से खोल से एक वेब यूआरएल textfile पद्धति का उपयोग करके उपयोग करने के लिए कोशिश कर रहा हूँ, लेकिन किसी एक वेब URL तक पहुंचने में। शायद यह सही तरीका नहीं है। तो क्या कोई मुझे बता सकता है कि स्पार्क संदर्भ से वेब यूआरएल का उपयोग कैसे करें।कैसे एक चिंगारी संदर्भ

मैं चिंगारी संस्करण 1.3.0 का उपयोग कर रहा; स्काला संस्करण 2.10.4 और जावा 1.7.0_21

[email protected]:~$ spark-shell 
 
Spark assembly has been built with Hive, including Datanucleus jars on classpath 
 
Welcome to 
 
     __    
 
    // // 
 
    \ \/ \/ `/ _/ '_/ 
 
    /___/ .__/\_,_/_/ /_/\_\ version 1.3.0 
 
     /_/ 
 

 
Using Scala version 2.10.4 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_21) 
 
Type in expressions to have them evaluated. 
 
Type :help for more information. 
 
Spark context available as sc. 
 
SQL context available as sqlContext. 
 

 
scala> val pagecount = sc.textFile("https://www.google.co.in/?gws_rd=ssl") 
 
pagecount: org.apache.spark.rdd.RDD[String] = https://www.google.co.in/?gws_rd=ssl MapPartitionsRDD[1] at textFile at <console>:21 
 

 
scala> pagecount.count() 
 
java.io.IOException: No FileSystem for scheme: https 
 
at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:1383) 
 
at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:66) 
 
at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:1404) 
 
at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:254) 
 
at org.apache.hadoop.fs.Path.getFileSystem(Path.java:187) 
 
at org.apache.hadoop.mapred.FileInputFormat.listStatus(FileInputFormat.java:176) 
 
at org.apache.hadoop.mapred.FileInputFormat.getSplits(FileInputFormat.java:208) 
 
at org.apache.spark.rdd.HadoopRDD.getPartitions(HadoopRDD.scala:203) 
 
at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:219) 
 
at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:217) 
 
at scala.Option.getOrElse(Option.scala:120) 
 
at org.apache.spark.rdd.RDD.partitions(RDD.scala:217) 
 
at org.apache.spark.rdd.MapPartitionsRDD.getPartitions(MapPartitionsRDD.scala:32) 
 
at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:219) 
 
at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:217) 
 
at scala.Option.getOrElse(Option.scala:120) 
 
at org.apache.spark.rdd.RDD.partitions(RDD.scala:217) 
 
at org.apache.spark.SparkContext.runJob(SparkContext.scala:1511) 
 
at org.apache.spark.rdd.RDD.count(RDD.scala:1006) 
 
at $iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:24) 
 
at $iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:29) 
 
at $iwC$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:31) 
 
at $iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:33) 
 
at $iwC$$iwC$$iwC$$iwC.<init>(<console>:35) 
 
at $iwC$$iwC$$iwC.<init>(<console>:37) 
 
at $iwC$$iwC.<init>(<console>:39) 
 
at $iwC.<init>(<console>:41) 
 
at <init>(<console>:43) 
 
at .<init>(<console>:47) 
 
at .<clinit>(<console>) 
 
at .<init>(<console>:7) 
 
at .<clinit>(<console>) 
 
at $print(<console>) 
 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
 
at java.lang.reflect.Method.invoke(Method.java:601) 
 
at org.apache.spark.repl.SparkIMain$ReadEvalPrint.call(SparkIMain.scala:1065) 
 
at org.apache.spark.repl.SparkIMain$Request.loadAndRun(SparkIMain.scala:1338) 
 
at org.apache.spark.repl.SparkIMain.loadAndRunReq$1(SparkIMain.scala:840) 
 
at org.apache.spark.repl.SparkIMain.interpret(SparkIMain.scala:871) 
 
at org.apache.spark.repl.SparkIMain.interpret(SparkIMain.scala:819) 
 
at org.apache.spark.repl.SparkILoop.reallyInterpret$1(SparkILoop.scala:856) 
 
at org.apache.spark.repl.SparkILoop.interpretStartingWith(SparkILoop.scala:901) 
 
at org.apache.spark.repl.SparkILoop.command(SparkILoop.scala:813) 
 
at org.apache.spark.repl.SparkILoop.processLine$1(SparkILoop.scala:656) 
 
at org.apache.spark.repl.SparkILoop.innerLoop$1(SparkILoop.scala:664) 
 
at org.apache.spark.repl.SparkILoop.org$apache$spark$repl$SparkILoop$$loop(SparkILoop.scala:669) 
 
at org.apache.spark.repl.SparkILoop$$anonfun$org$apache$spark$repl$SparkILoop$$process$1.apply$mcZ$sp(SparkILoop.scala:996) 
 
at org.apache.spark.repl.SparkILoop$$anonfun$org$apache$spark$repl$SparkILoop$$process$1.apply(SparkILoop.scala:944) 
 
at org.apache.spark.repl.SparkILoop$$anonfun$org$apache$spark$repl$SparkILoop$$process$1.apply(SparkILoop.scala:944) 
 
at scala.tools.nsc.util.ScalaClassLoader$.savingContextLoader(ScalaClassLoader.scala:135) 
 
at org.apache.spark.repl.SparkILoop.org$apache$spark$repl$SparkILoop$$process(SparkILoop.scala:944) 
 
at org.apache.spark.repl.SparkILoop.process(SparkILoop.scala:1058) 
 
at org.apache.spark.repl.Main$.main(Main.scala:31) 
 
at org.apache.spark.repl.Main.main(Main.scala) 
 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
 
at java.lang.reflect.Method.invoke(Method.java:601) 
 
at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:569) 
 
at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:166) 
 
at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:189) 
 
at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:110) 
 
at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)

उत्तर

10

आप textFile सीधे का उपयोग कर यूआरएल सामग्री नहीं मिल सकता है। textFile है:

HDFS से एक पाठ फ़ाइल, स्थानीय फाइल सिस्टम (सभी नोड्स पर उपलब्ध), या किसी Hadoop समर्थित फाइल सिस्टम यूआरआई

तुम देखो पढ़ें, HTTP/HTTPS यूआरएल नहीं है शामिल थे।

आप सामग्री पहले मिलता है, और फिर RDDs के रूप में यह कर सकते हैं।

val html = scala.io.Source.fromURL("https://spark.apache.org/").mkString 
val list = html.split("\n").filter(_ != "") 
val rdds = sc.parallelize(list) 
val count = rdds.filter(_.contains("Spark")).count() 
+0

लेकिन जब मैं स्केला> वैल एचटीएमएल = scala.io.Source.fromURL ("https किसी विशिष्ट शब्द गिनती करने के लिए मैं जावा अपवाद" बाउंड की सरणी सूचकांक आउट "हो रही है कोशिश कर रहा हूँ: //spark.apache। org/docs/नवीनतम/API/स्केला/index.html # org.apache.spark.SparkContext ") स्केला> वैल rdds = sc.parallelize (सूची (एचटीएमएल)) स्केला> rdds.filter (_। शामिल (" स्पार्क "))। गिनती() 15/04/20 00:30:28 त्रुटि टास्कसेट प्रबंधक: कार्य 7 को क्रमबद्ध करने में विफल, इसे पुनः प्रयास करने का प्रयास नहीं किया गया। java.lang.reflect.InvocationTargetException –

+0

आप यूआरएल स्वयं स्ट्रिंग या वेब सामग्री लाने के लिए जा रहे हैं? – chenzhongpu

+0

यूआरएल मैं उपयोग करना चाहते है: https: //spark.apache.org/docs/latest/api/scala/index.html#org.apache.spark.SparkContext और "चिंगारी" कीवर्ड गिनती –

संबंधित मुद्दे