ฉันลองdf.orderBy("col1").show(10)
แล้วแต่มันเรียงลำดับจากน้อยไปมาก df.sort("col1").show(10)
ยังเรียงลำดับจากมากไปหาน้อย ผมมองใน StackOverflow และคำตอบที่ผมพบทั้งหมดล้าสมัยหรือเรียก RDDs ฉันต้องการใช้ดาต้าเฟรมดั้งเดิมในการจุดประกาย
ฉันลองdf.orderBy("col1").show(10)
แล้วแต่มันเรียงลำดับจากน้อยไปมาก df.sort("col1").show(10)
ยังเรียงลำดับจากมากไปหาน้อย ผมมองใน StackOverflow และคำตอบที่ผมพบทั้งหมดล้าสมัยหรือเรียก RDDs ฉันต้องการใช้ดาต้าเฟรมดั้งเดิมในการจุดประกาย
คำตอบ:
คุณยังสามารถจัดเรียงคอลัมน์โดยการนำเข้าฟังก์ชัน spark sql
import org.apache.spark.sql.functions._
df.orderBy(asc("col1"))
หรือ
import org.apache.spark.sql.functions._
df.sort(desc("col1"))
การนำเข้า sqlContext.implicits._
import sqlContext.implicits._
df.orderBy($"col1".desc)
หรือ
import sqlContext.implicits._
df.sort($"col1".desc)
asc
..orderBy("col1", "col2")
มันอยู่ในorg.apache.spark.sql.DataFrame
สำหรับsort
วิธีการ:
df.sort($"col1", $"col2".desc)
หมายเหตุ$
และ.desc
ด้านในsort
สำหรับคอลัมน์เพื่อจัดเรียงผลลัพธ์ตาม
import org.apache.spark.sql.functions._
และimport sqlContext.implicits._
ยังมีฟังก์ชันดีๆมากมายให้คุณอีกด้วย
df.sort($"Time1", $"Time2".desc) SyntaxError: invalid syntax
ที่สัญลักษณ์ $
PySpark เท่านั้น
ฉันเจอโพสต์นี้เมื่อต้องการทำแบบเดียวกันใน PySpark วิธีที่ง่ายที่สุดคือเพิ่มพารามิเตอร์จากน้อยไปมาก = False:
df.orderBy("col1", ascending=False).show(10)
อ้างอิง: http://spark.apache.org/docs/2.1.0/api/python/pyspark.sql.html#pyspark.sql.DataFrame.orderBy
import org.apache.spark.sql.functions.desc
df.orderBy(desc("columnname1"),desc("columnname2"),asc("columnname3"))
df.sort($"ColumnName".desc).show()
ในกรณีของ Java:
หากเราใช้DataFrames
ในขณะที่ใช้การรวม (ที่นี่การรวมภายใน) เราสามารถจัดเรียง (ใน ASC) หลังจากเลือกองค์ประกอบที่แตกต่างกันในแต่ละ DF เป็น:
Dataset<Row> d1 = e_data.distinct().join(s_data.distinct(), "e_id").orderBy("salary");
ที่ไหน e_id
คอลัมน์ที่ใช้การเข้าร่วมอยู่ในขณะที่จัดเรียงตามเงินเดือนใน ASC
นอกจากนี้เรายังสามารถใช้ Spark SQL เป็น:
SQLContext sqlCtx = spark.sqlContext();
sqlCtx.sql("select * from global_temp.salary order by salary desc").show();
ที่ไหน