दिलचस्प पोस्ट
जावास्क्रिप्ट का उपयोग करके एकल कुकी मूल्य प्राप्त करने और सेट करने का "सर्वोत्तम" तरीका क्या है कैसे बाँट स्क्रिप्ट Ctrl- सी के बराबर एक पृष्ठभूमि कार्य करने के लिए कर सकते हैं? कैसे webservice यूआरएल समापन बिंदु को बदलने के लिए? सी में प्रतिबिंब समर्थन प्रगति संवाद और पृष्ठभूमि थ्रेड सक्रिय होने पर स्क्रीन अभिविन्यास बदलने के लिए कैसे करें? डब्ल्यूसीएफ बनाम एएसपी.नेट वेब एपीआई संपूर्ण निर्देशिका सामग्री को दूसरी निर्देशिका में प्रतिलिपि करें? 30 दिन का समय परीक्षण लागू करना mysql – तारीख की तारीख सीमाओं में दर्ज करें अगर तिथियां मौजूदा लोगों के साथ ओवरलैप नहीं करती हैं जावा जेडीबीसी – एसएडी के बजाय ओरेकल से सेवा नाम का उपयोग कैसे करें स्थानीय समय में यूटीसी / जीएमटी समय कन्वर्ट करें क्या दो वस्तुओं की गहरी तुलना करने के लिए जावा प्रतिबिंब उपयोगिता है? क्यों तारीख। गलत गलत परिणाम देते हैं? XmlSerializer: अनावश्यक xsi और xsd नामस्थानों को हटा दें क्या सी ++ समर्थन अंततः 'ब्लॉकों? (और यह 'आरएआई' क्या है जिसके बारे में मैं सुन रहा हूं?)

एचडीएफएस के बजाय स्थानीय फाइल को कैसे लोड करें

मैं महान स्पार्क ट्यूटोरियल का पालन ​​कर रहा हूँ

इसलिए मैं README.md को लोड करने के लिए 46 मीटर पर कोशिश कर रहा हूँ। README.md लेकिन मैं क्या कर रहा हूँ में विफल यह है:

 $ sudo docker run -i -t -h sandbox sequenceiq/spark:1.1.0 /etc/bootstrap.sh -bash bash-4.1# cd /usr/local/spark-1.1.0-bin-hadoop2.4 bash-4.1# ls README.md README.md bash-4.1# ./bin/spark-shell scala> val f = sc.textFile("README.md") 14/12/04 12:11:14 INFO storage.MemoryStore: ensureFreeSpace(164073) called with curMem=0, maxMem=278302556 14/12/04 12:11:14 INFO storage.MemoryStore: Block broadcast_0 stored as values in memory (estimated size 160.2 KB, free 265.3 MB) f: org.apache.spark.rdd.RDD[String] = README.md MappedRDD[1] at textFile at <console>:12 scala> val wc = f.flatMap(l => l.split(" ")).map(word => (word, 1)).reduceByKey(_ + _) org.apache.hadoop.mapred.InvalidInputException: Input path does not exist: hdfs://sandbox:9000/user/root/README.md at org.apache.hadoop.mapred.FileInputFormat.singleThreadedListStatus(FileInputFormat.java:285) 

मैं उस README.md को कैसे लोड कर सकता हूं?

वेब के समाधान से एकत्रित समाधान "एचडीएफएस के बजाय स्थानीय फाइल को कैसे लोड करें"

स्पष्ट रूप से sc.textFile("file:///path to the file/") निर्दिष्ट करें sc.textFile("file:///path to the file/") । त्रुटि तब होती है जब Hadoop वातावरण सेट किया जाता है।

SparkContext.textFile आंतरिक कॉल org.apache.hadoop.mapred.FileInputFormat.getSplits, जो बारी में org.apache.hadoop.fs.getDefaultUri का उपयोग करता है यदि स्कीमा अनुपस्थित है। यह विधि Hadoop conf के "fs.defaultFS" पैरामीटर पढ़ता है यदि आप HADOOP_CONF_DIR परिवेश चर को सेट करते हैं, तो पैरामीटर आमतौर पर "hdfs: // …" के रूप में सेट किया जाता है; अन्यथा "file: //"

गोनेबे का जवाब उत्कृष्ट है लेकिन फिर भी मैं उस file:/// का उल्लेख करना चाहता हूं file:/// = ~/../../ , नहीं $SPARK_HOME आशा है कि यह मेरे जैसे न्यूबस के लिए कुछ समय बचा सकता है

आपको फ़ाइल के पथ को "फ़ाइल: /// निर्देशिका / फाइल" के रूप में निर्दिष्ट करने की आवश्यकता है

उदाहरण:

 val textFile = sc.textFile("file:///usr/local/spark/README.md") 

मेरे डेस्कटॉप पर एक न्यूज़आर्टिकल। फाइल नामक एक फाइल है I

स्पार्क में, मैंने टाइप किया:

 val textFile= sc.textFile(“file:///C:/Users/582767/Desktop/NewsArticle.txt”) 

मुझे फ़ाइलपथ के लिए सभी \ to / character को बदलना होगा।

यह काम करने के लिए परीक्षण करने के लिए, मैंने टाइप किया:

 textFile.foreach(println) 

मैं विंडोज 7 चला रहा हूं और मेरे पास हडोप स्थापित नहीं है।

यह स्पार्क मेलिंग सूची में चर्चा की गई है, और कृपया इस मेल को देखें।

आपको hadoop fs -put <localsrc> ... <dst> उपयोग करना चाहिए hadoop fs -put <localsrc> ... <dst> फ़ाइल को hdfs में कॉपी करें:

 ${HADOOP_COMMON_HOME}/bin/hadoop fs -put /path/to/README.md README.md 

ध्यान:

जब आप स्थानीय ( sc.textFile("file:///path to the file/") से डेटा लोड करते हैं तो आप स्थानीय मोड में चिंगारी चलाते हैं या आप इस तरह से त्रुटि प्राप्त करेंगे Caused by: java.io.FileNotFoundException: File file:/data/sparkjob/config2.properties does not exist बेकासोस निष्पादक जो विभिन्न श्रमिकों पर चलते हैं, उन्हें इस फ़ाइल को स्थानीय पथ में नहीं मिलेगा।

यह इस त्रुटि का हल है जो मुझे स्पर्क क्लस्टर पर मिल रहा था जो कि एक विंडो क्लस्टर पर Azure में होस्ट की जाती है:

कच्चे HVAC.csv फ़ाइल लोड करें, फ़ंक्शन का उपयोग करके इसे पार्स करें

 data = sc.textFile("wasb:///HdiSamples/SensorSampleData/hvac/HVAC.csv") 

हम (wasb: ///) का उपयोग करते हैं ताकि हडोप को नीला ब्लॉग स्टोरेज फ़ाइल में प्रवेश करने की अनुमति मिल सके और तीन स्लेश चल नोड कंटेनर फ़ोल्डर के लिए एक सापेक्ष संदर्भ है।

उदाहरण के लिए: यदि स्पार्क क्लस्टर डैशबोर्ड में फ़ाइल एक्सप्लोरर में आपकी फ़ाइल का पथ है:

sflcc1 \ sflccspark1 \ HdiSamples \ SensorSampleData \ एचवीएसी

तो पथ का वर्णन करने के लिए निम्नानुसार है: sflcc1: भंडारण खाते का नाम है। sflccspark: क्लस्टर नोड नाम है।

इसलिए हम रिश्तेदार तीन स्लैश के साथ मौजूदा क्लस्टर नोड नाम का उल्लेख करते हैं।

उम्मीद है की यह मदद करेगा।

यदि फ़ाइल आपके स्पार्क मास्टर नोड में स्थित है (उदाहरण के लिए, एडब्ल्यूएस ईएमआर का उपयोग करने के मामले में), तो पहले स्थानीय मोड में स्पार्क-शेल लॉन्च करें।

 $ spark-shell --master=local scala> val df = spark.read.json("file:///usr/lib/spark/examples/src/main/resources/people.json") df: org.apache.spark.sql.DataFrame = [age: bigint, name: string] scala> df.show() +----+-------+ | age| name| +----+-------+ |null|Michael| | 30| Andy| | 19| Justin| +----+-------+ 

वैकल्पिक रूप से, आप फ़ाइल को स्थानीय फ़ाइल सिस्टम से पहले एचडीएफएस में प्रतिलिपि कर सकते हैं और फिर सीधे अपनी फाइल को पढ़ने के लिए स्पार्क को अपनी डिफ़ॉल्ट मोड में लॉन्च कर सकते हैं (उदाहरण के लिए, एआरडब्ल्यूएस ईएमआर का उपयोग करने के मामले में यार्न)

 $ hdfs dfs -mkdir -p /hdfs/spark/examples $ hadoop fs -put /usr/lib/spark/examples/src/main/resources/people.json /hdfs/spark/examples $ hadoop fs -ls /hdfs/spark/examples Found 1 items -rw-r--r-- 1 hadoop hadoop 73 2017-05-01 00:49 /hdfs/spark/examples/people.json $ spark-shell scala> val df = spark.read.json("/hdfs/spark/examples/people.json") df: org.apache.spark.sql.DataFrame = [age: bigint, name: string] scala> df.show() +----+-------+ | age| name| +----+-------+ |null|Michael| | 30| Andy| | 19| Justin| +----+-------+ 

यदि आप फ़ाइल फॉर्म एचडीएफएस पढ़ने की कोशिश कर रहे हैं स्पार्ककॉन्फ़ में पथ को स्थापित करने का प्रयास करना

  val conf = new SparkConf().setMaster("local[*]").setAppName("HDFSFileReader") conf.set("fs.defaultFS", "hdfs://hostname:9000") 

प्रयत्न

 val f = sc.textFile("./README.md")