คำถามติดแท็ก apache-spark

Apache Spark เป็นเครื่องมือประมวลผลข้อมูลแบบกระจายแบบโอเพนซอร์สที่เขียนใน Scala ซึ่งให้ API แบบรวมและชุดข้อมูลแบบกระจายแก่ผู้ใช้สำหรับทั้งการประมวลผลแบบแบตช์และสตรีมมิ่ง Use Cases for Apache Spark มักจะเกี่ยวข้องกับ machine / deep learning, การประมวลผลกราฟ

6
การเปลี่ยนชื่อคอลัมน์ของ DataFrame ใน Spark Scala
ฉันกำลังพยายามแปลงชื่อส่วนหัว / คอลัมน์ทั้งหมดของDataFrameใน Spark-Scala ณ ตอนนี้ฉันมาพร้อมกับรหัสต่อไปนี้ซึ่งแทนที่ชื่อคอลัมน์เดียวเท่านั้น for( i <- 0 to origCols.length - 1) { df.withColumnRenamed( df.columns(i), df.columns(i).toLowerCase ); }


12
java.io.IOException: ไม่พบ null \ bin \ winutils.exe ที่ปฏิบัติการได้ในไบนารี Hadoop spark Eclipse บน windows 7
ฉันไม่สามารถเรียกใช้sparkงานง่ายๆในScala IDE(โครงการ Maven spark) ที่ติดตั้งบนWindows 7 เพิ่มการพึ่งพาหลักของ Spark val conf = new SparkConf().setAppName("DemoDF").setMaster("local") val sc = new SparkContext(conf) val logData = sc.textFile("File.txt") logData.count() ข้อผิดพลาด: 16/02/26 18:29:33 INFO SparkContext: Created broadcast 0 from textFile at FrameDemo.scala:13 16/02/26 18:29:34 ERROR Shell: Failed to locate the winutils binary in the hadoop binary path …

5
Spark DataFrame group โดยและเรียงลำดับจากมากไปหาน้อย (pyspark)
ฉันใช้ pyspark (Python 2.7.9 / Spark 1.3.1) และมี dataframe GroupObject ซึ่งฉันต้องการกรองและเรียงลำดับจากมากไปหาน้อย พยายามที่จะบรรลุผ่านโค้ดชิ้นนี้ group_by_dataframe.count().filter("`count` >= 10").sort('count', ascending=False) แต่มันแสดงข้อผิดพลาดต่อไปนี้ sort() got an unexpected keyword argument 'ascending'

12
Mac spark-shell เกิดข้อผิดพลาดในการเตรียมใช้งาน SparkContext
ฉันพยายามเริ่ม spark 1.6.0 (spark-1.6.0-bin-hadoop2.4) บน Mac OS Yosemite 10.10.5 โดยใช้ "./bin/spark-shell". มีข้อผิดพลาดด้านล่าง ฉันพยายามติดตั้ง Spark เวอร์ชันต่างๆด้วย แต่ทั้งหมดมีข้อผิดพลาดเหมือนกัน นี่เป็นครั้งที่สองที่ฉันใช้ Spark การวิ่งครั้งก่อนของฉันทำงานได้ดี log4j:WARN No appenders could be found for logger (org.apache.hadoop.metrics2.lib.MutableMetricsFactory). log4j:WARN Please initialize the log4j system properly. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. Using Spark's repl log4j profile: org/apache/spark/log4j-defaults-repl.properties To adjust logging …


18
ฉันจะตั้งค่าเวอร์ชันหลามของไดรเวอร์เป็นประกายไฟได้อย่างไร
ฉันใช้ spark 1.4.0-rc2 ดังนั้นฉันจึงสามารถใช้ python 3 กับ spark ได้ หากฉันเพิ่มลงexport PYSPARK_PYTHON=python3ในไฟล์. bashrc ของฉันฉันสามารถเรียกใช้ spark แบบโต้ตอบกับ python 3 ได้อย่างไรก็ตามหากฉันต้องการเรียกใช้โปรแกรมแบบสแตนด์อโลนในโหมดโลคัลฉันได้รับข้อผิดพลาด: Exception: Python in worker has different version 3.4 than that in driver 2.7, PySpark cannot run with different minor versions ฉันจะระบุเวอร์ชันของ python สำหรับไดรเวอร์ได้อย่างไร การตั้งค่าexport PYSPARK_DRIVER_PYTHON=python3ไม่ทำงาน

8
เหตุใดงาน Spark จึงล้มเหลวด้วย org.apache.spark.shuffle.MetadataFetchFailedException: ไม่มีตำแหน่งเอาต์พุตสำหรับสับเปลี่ยน 0 ในโหมดเก็งกำไร
ฉันทำงาน Spark ด้วยโหมดเก็งกำไร ฉันมีงานประมาณ 500 งานและบีบอัดไฟล์ขนาด 1 GB gz ประมาณ 500 ไฟล์ ฉันทำงานแต่ละงานไปเรื่อย ๆ 1-2 งานข้อผิดพลาดที่แนบมาซึ่งจะเรียกใช้ซ้ำหลังจากนั้นหลายสิบครั้ง org.apache.spark.shuffle.MetadataFetchFailedException: ไม่มีตำแหน่งเอาต์พุตสำหรับการสุ่ม 0 ความคิดใดคือความหมายของปัญหาและจะเอาชนะมันได้อย่างไร? org.apache.spark.shuffle.MetadataFetchFailedException: Missing an output location for shuffle 0 at org.apache.spark.MapOutputTracker$$anonfun$org$apache$spark$MapOutputTracker$$convertMapStatuses$1.apply(MapOutputTracker.scala:384) at org.apache.spark.MapOutputTracker$$anonfun$org$apache$spark$MapOutputTracker$$convertMapStatuses$1.apply(MapOutputTracker.scala:381) at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244) at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244) at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33) at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:108) at scala.collection.TraversableLike$class.map(TraversableLike.scala:244) at scala.collection.mutable.ArrayOps$ofRef.map(ArrayOps.scala:108) at org.apache.spark.MapOutputTracker$.org$apache$spark$MapOutputTracker$$convertMapStatuses(MapOutputTracker.scala:380) at org.apache.spark.MapOutputTracker.getServerStatuses(MapOutputTracker.scala:176) at org.apache.spark.shuffle.hash.BlockStoreShuffleFetcher$.fetch(BlockStoreShuffleFetcher.scala:42) …

10
แยกค่าคอลัมน์ของ Dataframe เป็น List ใน Apache Spark
ฉันต้องการแปลงคอลัมน์สตริงของกรอบข้อมูลเป็นรายการ สิ่งที่ฉันสามารถหาได้จากDataframeAPI คือ RDD ดังนั้นฉันจึงลองแปลงกลับเป็น RDD ก่อนจากนั้นจึงใช้toArrayฟังก์ชันกับ RDD ในกรณีนี้ความยาวและ SQL ทำงานได้ดี อย่างไรก็ตามผลที่ผมได้จาก RDD [A00001]มีวงเล็บรอบองค์ประกอบเช่นนี้ทุก ฉันสงสัยว่ามีวิธีที่เหมาะสมในการแปลงคอลัมน์เป็นรายการหรือวิธีลบวงเล็บเหลี่ยม ข้อเสนอแนะใด ๆ จะได้รับการชื่นชม ขอขอบคุณ!

11
จะบันทึก DataFrame ลงใน Hive ได้อย่างไร?
เป็นไปได้ไหมที่จะบันทึกเป็นDataFrameประกายโดยตรงไปยัง Hive? ฉันได้ลองแปลงDataFrameเป็นRddแล้วบันทึกเป็นไฟล์ข้อความจากนั้นโหลดในกลุ่ม แต่ฉันสงสัยว่าฉันสามารถบันทึกdataframeลงในรังได้โดยตรงหรือไม่

5
คำนวณความเร็วเฉลี่ยของถนน [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิด3 วันที่ผ่านมา ฉันไปสัมภาษณ์วิศวกรข้อมูล ผู้สัมภาษณ์ถามคำถามฉัน เขาให้สถานการณ์ฉันและขอให้ฉันออกแบบการไหลของข้อมูลสำหรับระบบนั้น ฉันแก้ไขมันได้ แต่เขาไม่ชอบวิธีแก้ปัญหาของฉันและฉันล้มเหลว ฉันอยากจะรู้ว่าถ้าคุณมีความคิดที่ดีกว่าวิธีการแก้ปัญหาที่ท้าทาย คำถามคือ: ระบบของเราได้รับข้อมูลสี่สตรีม ข้อมูลมีรหัสยานพาหนะความเร็วและการประสานตำแหน่งทางภูมิศาสตร์ ทุก vihicle ส่งข้อมูลของมันหนึ่งครั้งต่อนาที ไม่มีการเชื่อมต่อระหว่างสตรีมที่เฉพาะเจาะจงกับถนนหรือถนนหรือสิ่งอื่นใด มีฟังก์ชั่นที่ยอมรับการเรียงลำดับและส่งคืนชื่อส่วนถนน เราจำเป็นต้องรู้ความเร็วของการละควาต่อส่วนถนนต่อ 5 นาที ในที่สุดเราต้องการเขียนผลลัพธ์ไปยังคาฟคา ดังนั้นทางออกของฉันคือ: ขั้นแรกให้เขียนข้อมูลทั้งหมดลงในคลัสเตอร์คาฟคาลงในหัวข้อเดียวโดยแบ่งเป็นละติจูดแรก 5-6 หลักของละติจูดที่ต่อกันกับละติจูดแรก 5-6 หลัก จากนั้นอ่านข้อมูลโดยการสตรีมมิ่งแบบมีโครงสร้างเพิ่มชื่อแถวส่วนถนนโดยการเรียงลำดับ (มี udf ที่กำหนดไว้ล่วงหน้าสำหรับแต่ละแถว) จากนั้นทำการจัดเรียงข้อมูลตามชื่อส่วนถนน เนื่องจากฉันแบ่งพาร์ติชันข้อมูลในคาฟคาโดยการเรียงตัวที่ 5-6 หลักหลังจากแปลการเรียงลำดับเป็นชื่อส่วนแล้วไม่จำเป็นต้องถ่ายโอนข้อมูลจำนวนมากไปยังพาร์ติชันที่ถูกต้องและดังนั้นฉันจึงสามารถใช้ประโยชน์จากการดำเนินการ colesce () ที่ไม่ก่อให้เกิดการสลับแบบเต็ม จากนั้นคำนวณความเร็วเฉลี่ยต่อผู้ปฏิบัติการ กระบวนการทั้งหมดจะเกิดขึ้นทุก 5 นาทีและเราจะเขียนข้อมูลในโหมดผนวกไปยังอ่างล้างจานคาฟคาสุดท้าย ดังนั้นอีกครั้งผู้สัมภาษณ์ไม่ชอบวิธีแก้ไขของฉัน ใครช่วยแนะนำวิธีการปรับปรุงหรือความคิดที่แตกต่างอย่างสมบูรณ์และดีกว่า?

2
การหยุดชะงักเมื่องาน spark หลายงานถูกกำหนดเวลาไว้พร้อมกัน
การใช้ spark 2.4.4 ทำงานในโหมดคลัสเตอร์ YARN พร้อมด้วยตัวกำหนดตารางเวลาประกายไฟ FIFO ฉันกำลังส่งการดำเนินการ spark dataframe หลายรายการ (เช่นการเขียนข้อมูลไปยัง S3) โดยใช้ตัวจัดการเธรดพูลที่มีเธรดจำนวนตัวแปร สิ่งนี้ใช้ได้ดีถ้าฉันมีเธรด ~ 10 แต่ถ้าฉันใช้เธรดนับร้อยรายการดูเหมือนว่าจะเป็นการหยุดชะงักโดยไม่มีงานที่กำหนดไว้ตาม Spark UI ปัจจัยอะไรที่ควบคุมว่าสามารถจัดตารางเวลางานได้พร้อมกันกี่งาน ทรัพยากรไดร์เวอร์ (เช่นหน่วยความจำ / แกนประมวลผล)? การตั้งค่าการกำหนดค่า Spark อื่น ๆ แก้ไข: นี่เป็นบทสรุปโดยย่อของรหัสของฉัน ExecutorService pool = Executors.newFixedThreadPool(nThreads); ExecutorCompletionService<Void> ecs = new ExecutorCompletionService<>(pool); Dataset<Row> aHugeDf = spark.read.json(hundredsOfPaths); List<Future<Void>> futures = listOfSeveralHundredThings .stream() .map(aThing …

2
Spark: ทำไมงูใหญ่ถึงมีประสิทธิภาพเหนือกว่า Scala ในกรณีที่ใช้งานของฉัน?
เพื่อเปรียบเทียบประสิทธิภาพของ Spark เมื่อใช้ Python และ Scala ฉันสร้างงานเดียวกันทั้งสองภาษาและเปรียบเทียบรันไทม์ ฉันคาดว่างานทั้งสองจะใช้เวลาเท่ากัน แต่งาน 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 = …

1
การเขียนมากกว่า 50 ล้านจาก Pyspark df ไปยัง PostgresSQL ซึ่งเป็นวิธีการที่มีประสิทธิภาพที่สุด
อะไรจะเป็นวิธีที่มีประสิทธิภาพมากที่สุดในการแทรกเรคคอร์ดนับล้านบันทึกว่า 50 ล้านจาก Spark dataframe ไปยัง Postgres Tables ฉันได้ทำสิ่งนี้ตั้งแต่ประกายไปจนถึง MSSQL ในอดีตโดยใช้ประโยชน์จากการคัดลอกจำนวนมากและตัวเลือกขนาดแบทช์ซึ่งก็ประสบความสำเร็จเช่นกัน มีบางอย่างที่คล้ายกันที่สามารถอยู่ที่นี่สำหรับ Postgres ได้หรือไม่ เพิ่มรหัสฉันได้ลองและเวลาที่ใช้ในการเรียกใช้กระบวนการ: def inserter(): start = timer() sql_res.write.format("jdbc").option("numPartitions","5").option("batchsize","200000")\ .option("url", "jdbc:postgresql://xyz.com:5435/abc_db") \ .option("dbtable", "public.full_load").option("user", "root").option("password", "password").save() end = timer() print(timedelta(seconds=end-start)) inserter() ดังนั้นผมจึงไม่ได้วิธีการดังกล่าวข้างต้น 10 ล้านแผ่นและมี 5 เชื่อมต่อแบบขนานตามที่ระบุในnumPartitionsและยังพยายามขนาดชุดของ 200k เวลาทั้งหมดที่ใช้ในกระบวนการคือ0: 14: 05.760926 (สิบสี่นาทีและห้าวินาที) มีวิธีอื่นที่มีประสิทธิภาพซึ่งจะลดเวลาหรือไม่? ขนาดแบทช์ที่มีประสิทธิภาพหรือเหมาะสมที่สุดที่ฉันสามารถใช้ได้คืออะไร การเพิ่มขนาดชุดของฉันจะทำงานเร็วขึ้นหรือไม่ หรือเปิดการเชื่อมต่อที่หลากหลายเช่น> 5 ช่วยให้กระบวนการเร็วขึ้นหรือไม่ บนเฉลี่ย …

3
วิธีแก้ไขข้อผิดพลาด 'TypeError: จำเป็นต้องใช้จำนวนเต็ม (มีชนิดเป็นไบต์)' เมื่อพยายามเรียกใช้ pyspark หลังจากติดตั้ง spark 2.4.4
ฉันติดตั้ง OpenJDK 13.0.1 และ python 3.8 และ spark 2.4.4 แล้ว คำแนะนำในการทดสอบการติดตั้งคือการรัน \ bin \ pyspark จากรูทของการติดตั้ง spark ฉันไม่แน่ใจว่าฉันพลาดขั้นตอนหนึ่งในการติดตั้งประกายไฟหรือไม่เช่นการตั้งค่าตัวแปรสภาพแวดล้อมบางอย่าง แต่ฉันไม่พบคำแนะนำโดยละเอียดเพิ่มเติมอีก ฉันสามารถรัน python interpreter บนเครื่องของฉันดังนั้นฉันมั่นใจว่ามันถูกติดตั้งอย่างถูกต้องและการรัน "java -version" ให้การตอบสนองที่คาดหวังดังนั้นฉันไม่คิดว่าปัญหาจะเกิดขึ้นกับทั้งคู่ ฉันได้รับการติดตามสแต็กของข้อผิดพลาดจาก cloudpickly.py: Traceback (most recent call last): File "C:\software\spark-2.4.4-bin-hadoop2.7\bin\..\python\pyspark\shell.py", line 31, in <module> from pyspark import SparkConf File "C:\software\spark-2.4.4-bin-hadoop2.7\python\pyspark\__init__.py", line 51, in <module> from …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.