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

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

1
pandasUDF และ pyarrow 0.15.0
ฉันเพิ่งเริ่มรับข้อผิดพลาดพวงของจำนวนpysparkงานที่ทำงานบนกลุ่ม EMR ข้อผิดพลาดคือ java.lang.IllegalArgumentException at java.nio.ByteBuffer.allocate(ByteBuffer.java:334) at org.apache.arrow.vector.ipc.message.MessageSerializer.readMessage(MessageSerializer.java:543) at org.apache.arrow.vector.ipc.message.MessageChannelReader.readNext(MessageChannelReader.java:58) at org.apache.arrow.vector.ipc.ArrowStreamReader.readSchema(ArrowStreamReader.java:132) at org.apache.arrow.vector.ipc.ArrowReader.initialize(ArrowReader.java:181) at org.apache.arrow.vector.ipc.ArrowReader.ensureInitialized(ArrowReader.java:172) at org.apache.arrow.vector.ipc.ArrowReader.getVectorSchemaRoot(ArrowReader.java:65) at org.apache.spark.sql.execution.python.ArrowPythonRunner$$anon$1.read(ArrowPythonRunner.scala:162) at org.apache.spark.sql.execution.python.ArrowPythonRunner$$anon$1.read(ArrowPythonRunner.scala:122) at org.apache.spark.api.python.BasePythonRunner$ReaderIterator.hasNext(PythonRunner.scala:406) at org.apache.spark.InterruptibleIterator.hasNext(InterruptibleIterator.scala:37) at org.apache.spark.sql.execution.python.ArrowEvalPythonExec$$anon$2.<init>(ArrowEvalPythonExec.scala:98) at org.apache.spark.sql.execution.python.ArrowEvalPythonExec.evaluate(ArrowEvalPythonExec.scala:96) at org.apache.spark.sql.execution.python.EvalPythonExec$$anonfun$doExecute$1.apply(EvalPythonExec.scala:127)... พวกเขาดูเหมือนจะเกิดขึ้นในการapplyทำงานของซีรีส์แพนด้า การเปลี่ยนแปลงเดียวที่ฉันพบคือpyarrowการอัปเดตในวันเสาร์ (05/10/2019) การทดสอบดูเหมือนจะทำงานกับ 0.14.1 ดังนั้นคำถามของฉันคือถ้าใครรู้ว่านี่เป็นข้อผิดพลาดใน pyarrow ที่ปรับปรุงใหม่หรือมีการเปลี่ยนแปลงที่สำคัญที่จะทำให้ pandasUDF ยากที่จะใช้ในอนาคตหรือไม่

1
Apache Spark: ผลกระทบของการแบ่งพาร์ติชันใหม่การเรียงลำดับและการแคชกับการเข้าร่วม
ฉันกำลังสำรวจพฤติกรรมของ Spark เมื่อเข้าร่วมโต๊ะกับตัวเอง ฉันกำลังใช้ Databricks สถานการณ์จำลองของฉันคือ: อ่านตารางภายนอกเป็น dataframe A (ไฟล์อ้างอิงอยู่ในรูปแบบของเดลต้า) กำหนด dataframe B เป็น dataframe A โดยเลือกคอลัมน์บางคอลัมน์เท่านั้น เข้าร่วม dataframes A และ B ในคอลัมน์ 1 และคอลัมน์ 2 (ใช่มันไม่สมเหตุสมผลมากนักฉันแค่ทดลองทำความเข้าใจกลไกพื้นฐานของ Spark) a = spark.read.table("table") \ .select("column1", "column2", "column3", "column4") \ .withColumn("columnA", lower((concat(col("column4"), lit("_"), col("column5"))))) b = a.select("column1", "column2", "columnA") c= a.join(b, how="left", on …

1
Spark: UDF ดำเนินการหลายครั้ง
ฉันมีชื่อไฟล์พร้อมรหัสต่อไปนี้: def test(lat: Double, lon: Double) = { println(s"testing ${lat / lon}") Map("one" -> "one", "two" -> "two") } val testUDF = udf(test _) df.withColumn("test", testUDF(col("lat"), col("lon"))) .withColumn("test1", col("test.one")) .withColumn("test2", col("test.two")) ตอนนี้ตรวจสอบล็อกฉันพบว่าสำหรับแต่ละแถว UDF จะถูกดำเนินการ 3 ครั้ง ถ้าฉันเพิ่ม "test3" จากคอลัมน์ "test.three" ดังนั้น UDF จะถูกดำเนินการอีกครั้ง มีคนอธิบายได้ไหมทำไม สามารถหลีกเลี่ยงสิ่งนี้ได้อย่างถูกต้องหรือไม่ (โดยไม่ต้องแคชข้อมูลหลังจากที่เพิ่ม "test" แม้ว่าจะใช้งานได้)?

3
การใช้ฟังก์ชั่น Python กับ Pandas จัดกลุ่ม DataFrame - วิธีที่มีประสิทธิภาพมากที่สุดในการคำนวณความเร็วคืออะไร?
ฉันกำลังจัดการกับ Pandas DataFrame ขนาดใหญ่ - ชุดข้อมูลของฉันคล้ายกับการdfตั้งค่าต่อไปนี้: import pandas as pd import numpy as np #--------------------------------------------- SIZING PARAMETERS : R1 = 20 # .repeat( repeats = R1 ) R2 = 10 # .repeat( repeats = R2 ) R3 = 541680 # .repeat( repeats = [ R3, R4 ] ) R4 = …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.