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

Apache Spark SQL เป็นเครื่องมือสำหรับ "SQL และการประมวลผลข้อมูลที่มีโครงสร้าง" บน Spark ซึ่งเป็นระบบประมวลผลคลัสเตอร์ที่รวดเร็วและใช้งานทั่วไป สามารถใช้เพื่อดึงข้อมูลจาก Hive, Parquet เป็นต้นและเรียกใช้การสืบค้น SQL ผ่าน RDD และชุดข้อมูลที่มีอยู่

15
ความแตกต่างระหว่าง DataFrame ชุดข้อมูลและ RDD ใน Spark
ฉันแค่สงสัยว่าอะไรคือความแตกต่างระหว่างRDDและDataFrame (Spark 2.0.0 DataFrame เป็นเพียงนามแฝงประเภทสำหรับDataset[Row])ใน Apache Spark? คุณสามารถแปลงหนึ่งเป็นอื่นได้หรือไม่

23
ฉันจะเปลี่ยนประเภทคอลัมน์ใน DataFrame ของ Spark SQL ได้อย่างไร
สมมติว่าฉันกำลังทำสิ่งที่ชอบ: val df = sqlContext.load("com.databricks.spark.csv", Map("path" -> "cars.csv", "header" -> "true")) df.printSchema() root |-- year: string (nullable = true) |-- make: string (nullable = true) |-- model: string (nullable = true) |-- comment: string (nullable = true) |-- blank: string (nullable = true) df.show() year make model comment blank 2012 …

8
วิธีการเลือกแถวแรกของแต่ละกลุ่ม?
ฉันมี DataFrame สร้างขึ้นดังนี้ df.groupBy($"Hour", $"Category") .agg(sum($"value") as "TotalValue") .sort($"Hour".asc, $"TotalValue".desc)) ผลลัพธ์ดูเหมือนว่า: +----+--------+----------+ |Hour|Category|TotalValue| +----+--------+----------+ | 0| cat26| 30.9| | 0| cat13| 22.1| | 0| cat95| 19.6| | 0| cat105| 1.3| | 1| cat67| 28.5| | 1| cat4| 26.8| | 1| cat13| 12.6| | 1| cat23| 5.3| | 2| cat56| 39.6| …

14
Spark - โหลดไฟล์ CSV เป็น DataFrame หรือไม่
ฉันต้องการอ่าน CSV อย่างรวดเร็วและแปลงเป็น DataFrame และเก็บไว้ใน HDFS ด้วย df.registerTempTable("table_name") ฉันเหนื่อย: scala> val df = sqlContext.load("hdfs:///csv/file/dir/file.csv") ข้อผิดพลาดที่ฉันได้รับ: java.lang.RuntimeException: hdfs:///csv/file/dir/file.csv is not a Parquet file. expected magic number at tail [80, 65, 82, 49] but found [49, 59, 54, 10] at parquet.hadoop.ParquetFileReader.readFooter(ParquetFileReader.java:418) at org.apache.spark.sql.parquet.ParquetRelation2$MetadataCache$$anonfun$refresh$6.apply(newParquet.scala:277) at org.apache.spark.sql.parquet.ParquetRelation2$MetadataCache$$anonfun$refresh$6.apply(newParquet.scala:276) at scala.collection.parallel.mutable.ParArray$Map.leaf(ParArray.scala:658) at scala.collection.parallel.Task$$anonfun$tryLeaf$1.apply$mcV$sp(Tasks.scala:54) at scala.collection.parallel.Task$$anonfun$tryLeaf$1.apply(Tasks.scala:53) at …

2
จะเพิ่มคอลัมน์ค่าคงที่ใน Spark DataFrame ได้อย่างไร
ฉันต้องการเพิ่มคอลัมน์ใน a DataFrameโดยมีค่าตามอำเภอใจ (ซึ่งเหมือนกันสำหรับแต่ละแถว) ฉันได้รับข้อผิดพลาดเมื่อใช้withColumnดังนี้: dt.withColumn('new_column', 10).head(5) --------------------------------------------------------------------------- AttributeError Traceback (most recent call last) <ipython-input-50-a6d0257ca2be> in <module>() 1 dt = (messages 2 .select(messages.fromuserid, messages.messagetype, floor(messages.datetime/(1000*60*5)).alias("dt"))) ----> 3 dt.withColumn('new_column', 10).head(5) /Users/evanzamir/spark-1.4.1/python/pyspark/sql/dataframe.pyc in withColumn(self, colName, col) 1166 [Row(age=2, name=u'Alice', age2=4), Row(age=5, name=u'Bob', age2=7)] 1167 """ -> 1168 return self.select('*', col.alias(colName)) 1169 1170 …

11
วิธีการแปลงวัตถุ rdd เป็น dataframe ใน spark
ฉันจะแปลง RDD ( org.apache.spark.rdd.RDD[org.apache.spark.sql.Row]) เป็น Dataframe org.apache.spark.sql.DataFrameได้อย่างไร ผมแปลง dataframe เพื่อ RDD .rddใช้ หลังจากการประมวลผลฉันต้องการมันกลับมาใน dataframe ฉันจะทำสิ่งนี้ได้อย่างไร

6
จะจัดเรียงตามคอลัมน์จากมากไปหาน้อยใน Spark SQL ได้อย่างไร?
ฉันลองdf.orderBy("col1").show(10)แล้วแต่มันเรียงลำดับจากน้อยไปมาก df.sort("col1").show(10)ยังเรียงลำดับจากมากไปหาน้อย ผมมองใน StackOverflow และคำตอบที่ผมพบทั้งหมดล้าสมัยหรือเรียก RDDs ฉันต้องการใช้ดาต้าเฟรมดั้งเดิมในการจุดประกาย

9
ฉันจะเพิ่มคอลัมน์ใหม่ใน Spark DataFrame (โดยใช้ PySpark) ได้อย่างไร
ฉันมี Spark DataFrame (ใช้ PySpark 1.5.1) และต้องการเพิ่มคอลัมน์ใหม่ ฉันได้ลองทำสิ่งต่อไปนี้แล้ว แต่ไม่ประสบความสำเร็จ: type(randomed_hours) # => list # Create in Python and transform to RDD new_col = pd.DataFrame(randomed_hours, columns=['new_col']) spark_new_col = sqlContext.createDataFrame(new_col) my_df_spark.withColumn("hours", spark_new_col["new_col"]) ยังได้รับข้อผิดพลาดในการใช้สิ่งนี้: my_df_spark.withColumn("hours", sc.parallelize(randomed_hours)) ดังนั้นฉันจะเพิ่มคอลัมน์ใหม่ (ตาม Python vector) ไปยัง DataFrame ที่มีอยู่ด้วย PySpark ได้อย่างไร

5
จะกำหนดการแบ่งพาร์ติชันของ DataFrame ได้อย่างไร?
ฉันเริ่มใช้ Spark SQL และ DataFrames ใน Spark 1.4.0 ฉันต้องการกำหนดพาร์ติชันเนอร์ที่กำหนดเองบน DataFrames ใน Scala แต่ไม่เห็นวิธีการทำเช่นนี้ หนึ่งในตารางข้อมูลที่ฉันกำลังใช้งานประกอบด้วยรายการธุรกรรมตามบัญชีซิลิมาร์ดังตัวอย่างต่อไปนี้ Account Date Type Amount 1001 2014-04-01 Purchase 100.00 1001 2014-04-01 Purchase 50.00 1001 2014-04-05 Purchase 70.00 1001 2014-04-01 Payment -150.00 1002 2014-04-01 Purchase 80.00 1002 2014-04-02 Purchase 22.00 1002 2014-04-04 Payment -120.00 1002 2014-04-04 Purchase 60.00 …


14
จะตรวจสอบได้อย่างไรว่า spark dataframe ว่างเปล่า
ตอนนี้ฉันต้องใช้df.count > 0เพื่อตรวจสอบว่าDataFrameว่างหรือไม่ แต่มันไม่มีประสิทธิภาพ มีวิธีไหนที่ดีกว่านี้ไหม? ขอบคุณ. PS: ฉันต้องการตรวจสอบว่าว่างหรือไม่เพื่อที่ฉันจะบันทึกเฉพาะDataFrameถ้ามันไม่ว่าง

10
กรองคอลัมน์ดาต้าเฟรมของ Pyspark ด้วยค่าไม่มี
ฉันกำลังพยายามกรองดาต้าเฟรม PySpark ที่มีNoneค่าเป็นแถว: df.select('dt_mvmt').distinct().collect() [Row(dt_mvmt=u'2016-03-27'), Row(dt_mvmt=u'2016-03-28'), Row(dt_mvmt=u'2016-03-29'), Row(dt_mvmt=None), Row(dt_mvmt=u'2016-03-30'), Row(dt_mvmt=u'2016-03-31')] และฉันสามารถกรองได้อย่างถูกต้องด้วยค่าสตริง: df[df.dt_mvmt == '2016-03-31'] # some results here แต่สิ่งนี้ล้มเหลว: df[df.dt_mvmt == None].count() 0 df[df.dt_mvmt != None].count() 0 แต่มีค่าแน่นอนในแต่ละประเภท เกิดอะไรขึ้น?

5
วิธีเปลี่ยนคอลัมน์ Dataframe จาก String type เป็น Double type ใน pyspark
ฉันมี dataframe ที่มีคอลัมน์เป็น String ฉันต้องการเปลี่ยนประเภทคอลัมน์เป็นประเภท Double ใน PySpark ต่อไปนี้เป็นวิธีที่ฉันทำ: toDoublefunc = UserDefinedFunction(lambda x: x,DoubleType()) changedTypedf = joindf.withColumn("label",toDoublefunc(joindf['show'])) แค่อยากรู้ว่านี่เป็นวิธีที่ถูกต้องหรือไม่ในขณะที่ทำงานผ่าน Logistic Regression ฉันได้รับข้อผิดพลาดบางอย่างดังนั้นฉันจึงสงสัยว่านี่เป็นสาเหตุของปัญหาหรือไม่

9
จะสร้าง DataFrame ที่ว่างเปล่าด้วยสคีมาที่ระบุได้อย่างไร?
ฉันต้องการสร้างDataFrameด้วยสคีมาที่ระบุใน Scala ฉันได้พยายามใช้การอ่าน JSON (ฉันหมายถึงการอ่านไฟล์เปล่า) แต่ฉันไม่คิดว่านั่นเป็นแนวทางปฏิบัติที่ดีที่สุด

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

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