ইলাম টেবিল
ইলাম টেবিলগুলি একটি স্পার্ক ফর্ম্যাট যা ডেল্টা, আইসবার্গ এবং হুডি ডেটা ফর্ম্যাটগুলির জন্য মোড়ক হিসাবে কাজ করে। এটি আপনাকে ইউনিফাইড ইন্টারফেস ব্যবহার করে এই ফর্ম্যাটগুলিতে ডেটাসেটগুলি অ্যাক্সেস এবং তৈরি করতে সক্ষম করে, যার ফলে আরও নমনীয় কোড ডিজাইন হয়।
ইলাম টেবিল আমদানি করুন
ব্যবহার করতে ইলাম টেবিল আপনার অন্তর্ভুক্ত করা উচিত ilum-spark-format প্যাকেজ মধ্যে আপনার ইলাম জবস . আপনি এই কনফিগারেশন যুক্ত করে এটি করতে পারেন:
spark.jars.packages=cloud.ilum:ilum-spark-format:6.1.0
বা আপনার ইলম জব রিসোর্সগুলিতে পৃথক জার হিসাবে প্যাকেজ যুক্ত করে
কীভাবে আপনার প্যাকেজ অন্তর্ভুক্ত করবেন স্কালা অ্যাপ্লিকেশন
- এসবিটি ব্যবহার করে:
libraryDependencies += "cloud.ilum" % "ilum-spark-format" % "6.1.0"
- মাভেন ব্যবহার করে:
< নির্ভরশীলতা >
< GroupId > ক্লাউড.ইলুম </ GroupId >
< artifactId > ilum-spark-format </ artifactId >
< সংস্করণ > 6.1.0 </ সংস্করণ >
</ নির্ভরশীলতা >
- গ্রেডেল ব্যবহার করে:
বাস্তবায়ন গ্রুপ: 'ক্লাউড.আইলুম', নাম: 'আইলুম-স্পার্ক-ফর্ম্যাট', সংস্করণ: '6.1.0'
কিভাবে ব্যবহার করবেন?
- নির্দিষ্ট করে ডেটা পড়ুন এবং লিখুন ' ইলুম ফরম্যাট '
- ব্যবহার করে তথ্য পড়ুন ও লিখুন ইলুম পদ্ধতি
এটি করার জন্য আপনাকে এভাবে আমদানি করতে হবে:
আমদানি মেঘ . ইলুম . implicits. {
IlumDataFrameReader,
IlumDataFrameWriter,
IlumDataFrameWriterV2,
IlumDataStreamWriter,
IlumDataStreamReader
}
- প্রাক-কনফিগার করে ডেটা পড়ুন ও লিখুন ক্যাটালগ ( লিখতে হবে, পড়তে হবে)
পড়ার
val filepath = "s3a://ilum-files/ilum-tables/table"
val tableFormat = Some( "delta")
ইলম পদ্ধতি ছাড়া
val mydf = স্ফুলিঙ্গ . রিড . format( "ilum") . বিকল্প ( "tableFormat", tableFormat) . load( filepath)
ইলুম পদ্ধতি সহ
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( "আইডি" , "নাম" )
DataframeWriterV1 ব্যবহার করে
আপনি এই মত সিনট্যাক্স ব্যবহার করতে পারেন
ডিএফ . লিখন . format( "ilum") . বিকল্প ( "tableFormat", tableFormat) . save( filepath)
অথবা তুমি ইলুম ফাংশন ব্যবহার করতে পারো
ডিএফ . লিখন . ইলুম ( filepath + "/1", format)
প্রাক-কনফিগার করা ডেল্টা ক্যাটালগ সহ ডেটাফ্রেমরাইটারভি 2 ব্যবহার করা
valক্যাটালগ = "catalog"
valসারণী = "tablename"
ডিএফ . writeTo( s " ${ক্যাটালগ } . ${সারণী } " ) . ইলুম ( 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 = s "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.DeltaSparkSessionExtension
spark.sql.catalog.spark_catalog=org.apache.spark.sql.delta.catalog.DeltaCatalog
spark.sql.warehouse.dir=s3a://ilum-files/ilum-warehouse
এবং আপনাকে অবশ্যই আপনার পরিবেশে ডেল্টা প্যাকেজ অন্তর্ভুক্ত করতে হবে। এটি করার জন্য আপনি ডেল্টা এক্সটেনশন সহ কুবারনেটস স্পার্ক চিত্র ব্যবহার করতে পারেন প্রাক ইনস্টল করা:
spark.kubernetes.container.image=ilum/spark:3.5.2-delta
অথবা প্রয়োজনীয় এক্সটেনশন প্যাকেজ নিজেই ইনস্টল করুন
হিমশৈল
আইসবার্গ ব্যবহার করার জন্য আপনাকে এই কনফিগারেশনগুলি যুক্ত করতে হবে:
spark.sql.catalog.iceberg_catalog=org.apache.iceberg.spark.SparkSessionCatalog
spark.sql.catalog.iceberg_catalog.type=hive
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
এবং আপনাকে অবশ্যই অন্তর্ভুক্ত করতে হবে অর্গ.অ্যাপাচি.আইসবার্গ:আইসবার্গ-স্পার্ক-রানটাইম-3.5_2.13: 1.6.1 সংস্থানগুলিতে এর জার যুক্ত করে বা স্পার্ক কনফিগারেশনে যুক্ত করে আপনার পরিবেশে প্যাকেজ করুন
এই:
spark.jars.packages=org.apache.iceberg:iceberg-spark-runtime-3.5_2.13:1.6.1
হুদি
হুডি ব্যবহার করার জন্য আপনার এই কনফিগারেশনগুলি যুক্ত করা উচিত:
spark.serializer=org.apache.spark.serializer.KryoSerializer
spark.sql.extensions=org.apache.spark.sql.hudi.HoodieSpearkSessionExtension
spark.sql.catalog.spark_catalog=org.apache.spark.sql.হুডি.ক্যাটালগ.হুডিক্যাটালগ
এবং আমদানি অর্গ.এপাচি.হুডি:হুদি-স্পার্ক৩.৫-bundle_2.১২:০.১৫.০ সংস্থানগুলিতে এর জার যুক্ত করে বা স্পার্ক কনফিগারেশনে এটি যুক্ত করে আপনার পরিবেশে প্যাকেজ করুন:
spark.jars.packages=org.apache.hudi:hudi-spark3.5-bundle_2.12:0.15.0