मैं देशी स्पार्क डेटाफ्रेम का उपयोग करना पसंद करता हूं, क्योंकि यह मुझे अधिक अनुकूलन की अनुमति देता है। मैं स्ट्रिंगटाइप . का उपयोग कर सकता हूं तालिका में डेटाफ्रेम से जेसनबी फ़ील्ड में जेसन फ़ील्ड डालने की संपत्ति। इस मामले के लिए, मेरे डेटाफ़्रेम में दो फ़ील्ड हैं।
from pyspark import SparkConf
sc = SparkContext.getOrCreate(SparkConf())
spark = SparkSession(sc)
df = spark.read.format('csv') \
.option('delimiter','|') \
.option('header','True') \
.load('your_path')
##some transformation...
url = 'jdbc:postgresql://your_host:5432/your_databasename'
properties = {'user':'*****',
'password':'*****',
'driver': "org.postgresql.Driver",
'stringtype':"unspecified"}
df.write.jdbc(url=url, table='your_tablename', mode='append', properties=properties)
उपरोक्त स्क्रिप्ट को निष्पादित करने से पहले, आपको पोस्टग्रेस्क्ल में तालिका बनानी चाहिए, क्योंकि संपत्ति मोड संलग्न करें . के रूप में सेट किया गया है . यह इस प्रकार है:
create table your_tablename
(
my_json_field jsonb,
another_field int
)