मुख्य विषयवस्तु में जाएं

इलम टेबल्स

इलम टेबल्स एक स्पार्क प्रारूप है जो डेल्टा, आइसबर्ग और हुडी डेटा प्रारूपों के लिए एक आवरण के रूप में कार्य करता है। यह आपको एकीकृत इंटरफ़ेस का उपयोग करके इन स्वरूपों में डेटासेट तक पहुंचने और बनाने में सक्षम बनाता है, जिसके परिणामस्वरूप अधिक लचीला कोड डिज़ाइन होता है।

Ilum टेबल्स आयात करें

का उपयोग करने के लिए इलम टेबल्स आपको शामिल करना चाहिए इलम-स्पार्क-प्रारूप अपने में पैकेज इलम जॉब्स. आप इस कॉन्फ़िगरेशन को जोड़कर ऐसा कर सकते हैं:

स्पार्क.जार्स.पैकेज = क्लाउड.इलम : इलम-स्पार्क-प्रारूप: 6.1.0

या पैकेज को अपने इलम जॉब संसाधनों में एक अलग जार के रूप में जोड़कर

अपने में पैकेज कैसे शामिल करें स्काला आवेदन

  • एसबीटी का उपयोग करना:
libraryDependencies += "cloud.ilum" % "ilum-spark-format" % "6.1.0"
  • मावेन का उपयोग करना:
<निर्भरता>
<समूह आईडी>बादल.इलमसमूह आईडी>
<आर्टिफैक्टआईडी>इलम-स्पार्क-प्रारूपआर्टिफैक्टआईडी>
<विवरण>6.1.0विवरण>
निर्भरता>
  • ग्रैडल का उपयोग करना:
कार्यान्वयन समूह: 'cloud.ilum', नाम: 'ilum-spark-format', संस्करण: '6.1.0'

इसका उपयोग कैसे करें?

  • डेटा निर्दिष्ट करते हुए पढ़ें और लिखें 'इलम प्रारूप'
  • का उपयोग करके डेटा पढ़ें और लिखें इलम विधि

ऐसा करने के लिए आपको उन्हें इस तरह आयात करना चाहिए:

आयात बादल.इलम.implicits.{
IlumDataFrameReader,
IlumDataFrameWriter,
IlumDataFrameWriterV2,
IlumDataStreamWriter,
IlumDataStreamReader
}
  • पूर्व-कॉन्फ़िगर करके डेटा पढ़ें और लिखें कैटलॉग (राइटटू, रीड.टेबल)

पढ़ना

val filepath = "s3a://ilum-files/ilum-tables/table"
val tableFormat = Some("delta")

// without ilum method
val mydf = उत्तेजक गुण.पढ़ना.format("ilum").विकल्प("tableFormat", tableFormat).load(filepath)

// with ilum method
val mydf2 = sparkSession.पढ़ना.इलम(filePath, tableFormat)


कृतियाँ

val filepath = "s3a://ilum-files/ilum-tables/table"
val tableFormat = "delta"

val डाटा = Seq(
(1, "Alice"),
(2, "Bob"),
(3, "Cathy")
)

val लोमो = उत्तेजक गुण.createDataFrame(डाटा).toDF("आईडी", "नाम")

// using DataframeWriterV1

// you can use syntax like this
लोमो.लिखना.format("ilum").विकल्प("tableFormat", tableFormat).save(filepath)

// or you can use ilum function

लोमो.लिखना.इलम(filepath + "/1", format)

// using DataframeWriterV2 with preconfigured Delta catalog
val कैटलॉग = "catalog"
val सारणी = "tablename"
लोमो.writeTo(दक्षिणी"${कैटलॉग}.${सारणी}").इलम(format, None ).createOrReplace()

कोशिकाद्रव्य-संचार

इलम विधियों के बिना

val filepath = "s3a://ilum-files/ilum-tables/streaming"
val tableFormat = "delta"

val input = उत्तेजक गुण.readStream
.format("ilum")
.विकल्प("tableFormat", tableFormat)
.load(filepath)

val सवाल = input.writeStream
.outputMode("append")
.format("ilum")
.विकल्प("tableFormat", tableFormat)
.विकल्प("path", filepath + "_copy")
.विकल्प("checkpointLocation", filepath + "_checkpoint")
.start()

सवाल.awaitTermination()

इलम विधियों के साथ:


val filePath = दक्षिणी"s3a://ilum-files/ilum-tables/smth"
val tableFormat = Some("delta")

val लोमो = sparkSession.readStream.इलम(filePath, tableFormat)

val सवाल = लोमो.writeStream
.विकल्प("checkpointLocation", filePath + "_checkpoint")
.इलम(filePath+"_copy", tableFormat)

सवाल.awaitTermination()

डेटा स्वरूपों को कॉन्फ़िगर करना

डेल्टा

डेल्टा का उपयोग करने के लिए आपको इन स्पार्क कॉन्फ़िगरेशन का उपयोग करना चाहिए:

spark.sql.extensions=io.delta.sql.डेल्टास्पार्कसेशन एक्सटेंशन
spark.sql.catalog.spark_catalog=org.apache.spark.sql.delta.catalog.DeltaCatalog
spark.sql.वेयरहाउस.dir=s3a://ilum-files/ilum-warehouse

और आपको डेल्टा पैकेज को अपने परिवेश में शामिल करना होगा। ऐसा करने के लिए आप डेल्टा एक्सटेंशन के साथ कुबेरनेट्स स्पार्क छवि का उपयोग कर सकते हैं पूर्वस्थापित:

स्पार्क.कुबेरनेट्स.कंटेनर.इमेज=इलम/स्पार्क:3.5.2-डेल्टा

या आवश्यक एक्सटेंशन पैकेज स्वयं स्थापित करें

हिमशैल

आइसबर्ग का उपयोग करने के लिए आपको इन कॉन्फ़िगरेशन को जोड़ना चाहिए:

spark.sql.catalog.iceberg_catalog=org.apache.iceberg.spark.SparkSessionCatalog
spark.sql.catalog.iceberg_catalog.type=छत्ता
spark.sql.catalog.iceberg_catalog, org.apache.iceberg.spark.SparkCatalog
spark.sql.catalog.iceberg_catalog.type=hadoop
spark.sql.catalog.iceberg_catalog.warehouse=s3a://ilum-files/ilum-tables/iceberg/warehouse

और आपको शामिल करना होगा org.apache.iceberg:आइसबर्ग-स्पार्क-रनटाइम-3.5_2.13:1.6.1 अपने जार को संसाधनों में जोड़कर या इसे स्पार्क कॉन्फ़िगरेशन में जोड़कर अपने वातावरण में पैकेज करें जैसे यहन:

स्पार्क.जार्स.पैकेज = org.apache.iceberg: आइसबर्ग-स्पार्क-रनटाइम-3.5_2.13: 1.6.1

हुडी

हुडी का उपयोग करने के लिए आपको इन विन्यासों को जोड़ना चाहिए:

spark.serializer=org.apache.spark.serializer.KryoSerializer
spark.sql.extensions=org.apache.spark.sql.हुडी.हूडीस्पीयरकसेशनएक्सटेंशन
spark.sql.catalog.spark_catalog=org.apache.spark.sql.hudi.catalog.Hoodieकैटलॉग

और आयात org.apache.hudi:हुडी-स्पार्क3.5-bundle_2.12:0.15.0 अपने जार को संसाधनों में जोड़कर या इस तरह स्पार्क कॉन्फ़िगरेशन में जोड़कर अपने वातावरण में पैकेज करें:

स्पार्क.जार्स.पैकेज = org.apache.hudi: हुडी-स्पार्क3.5-bundle_2.12: 0.15.0