apache-spark
स्पार्क डेटाफ़्रेम
खोज…
परिचय
स्काला में डाटाफ्रेम का निर्माण
DataFrames बनाने के कई तरीके हैं। उन्हें स्थानीय सूचियों से बनाया जा सकता है, वितरित RDD या डेटा स्रोत से पढ़ सकते हैं।
ToDF का उपयोग करना
स्पार्क एसक्यूएल इम्प्लिट्स को आयात करके, एक स्थानीय Seq, Array या RDD से एक DataFrame बना सकता है, जब तक कि सामग्री उत्पाद उप-प्रकार के होते हैं (ट्यूपल्स और केस क्लास उत्पाद उप-प्रकार के प्रसिद्ध उदाहरण हैं)। उदाहरण के लिए:
import sqlContext.implicits._
val df = Seq(
(1, "First Value", java.sql.Date.valueOf("2010-01-01")),
(2, "Second Value", java.sql.Date.valueOf("2010-02-01"))
).toDF("int_column", "string_column", "date_column")
CreateDataFrame का उपयोग करना
एक अन्य विकल्प createDataFrame
में मौजूद createDataFrame
विधि का उपयोग कर रहा है। यह विकल्प स्थानीय सूचियों या उत्पाद उप-प्रकारों के RDDs को toDF
साथ बनाने की अनुमति देता है, लेकिन स्तंभों के नाम एक ही चरण में सेट नहीं किए जाते हैं। उदाहरण के लिए:
val df1 = sqlContext.createDataFrame(Seq(
(1, "First Value", java.sql.Date.valueOf("2010-01-01")),
(2, "Second Value", java.sql.Date.valueOf("2010-02-01"))
))
इसके अतिरिक्त, यह दृष्टिकोण Row
उदाहरणों के RDDs से निर्माण की अनुमति देता है, जब तक कि एक schema
पैरामीटर परिणामी DataFrame के स्कीमा की परिभाषा के लिए पारित हो जाता है। उदाहरण:
import org.apache.spark.sql.types._
val schema = StructType(List(
StructField("integer_column", IntegerType, nullable = false),
StructField("string_column", StringType, nullable = true),
StructField("date_column", DateType, nullable = true)
))
val rdd = sc.parallelize(Seq(
Row(1, "First Value", java.sql.Date.valueOf("2010-01-01")),
Row(2, "Second Value", java.sql.Date.valueOf("2010-02-01"))
))
val df = sqlContext.createDataFrame(rdd, schema)
स्रोतों से पढ़ना
शायद DataFrame बनाने का सबसे आम तरीका डेटा स्रोत से है। उदाहरण के लिए, इसे hdfs में एक लकड़ी की छत फ़ाइल से बना सकते हैं:
val df = sqlContext.read.parquet("hdfs:/path/to/file")