Big data teknolojileri içerisinde Apache Spark son derece önemli bir yer tutuyor. Apache ile neler yapabileceğimiz konusunda linki tıklayabilirsiniz. Bugun Spark üzerinden Oracle Database imize nasıl bağlanabiliriz , oradaki verileri alıp ne şekilde kullanabiliriz. bir örnekle paylaşmak istedim.
Makinamızda Hadoop platformunun yüklü olduğunu ve spark servisinin olduğunu varsayıyorum. Spark kurulumunu http://spark.apache.org/downloads.html gerçekleştirebilirsiniz.
orcl isminde 1521 nolu portttan çalışan hr userin Employees tablosu için
spark-shell
scala> val employees = sqlContext.read.format("jdbc").
option("url", "jdbc:oracle:thin:hr/hr@localhost:1521/orcl").
option("driver", "oracle.jdbc.OracleDriver").
option("dbtable", "employees").load()
employees: org.apache.spark.sql.DataFrame =
[EMPLOYEE_ID: decimal(6,0), FIRST_NAME: string, LAST_NAME: string, EMAIL: string, PHONE_NUMBER: string, HIRE_DATE: timestamp, JOB_ID: string, SALARY: decimal(8,2), COMMISSION_PCT: decimal(2,2), MANAGER_ID: decimal(6,0), DEPARTMENT_ID: decimal(4,0)]
scala> employees.count()
res0: Long = 107
+-----------+----------+---------+--------+------------+--------------------+------+--------+--------------+----------+-------------+ |EMPLOYEE_ID|FIRST_NAME|LAST_NAME| EMAIL|PHONE_NUMBER| HIRE_DATE|JOB_ID| SALARY|COMMISSION_PCT|MANAGER_ID|DEPARTMENT_ID| +-----------+----------+---------+--------+------------+--------------------+------+--------+--------------+----------+-------------+ | 101| Neena| Kochhar|NKOCHHAR|515.123.4568|2005-09-21 00:00:...| AD_VP|17000.00| null| 100| 90| +-----------+----------+---------+--------+------------+--------------------+------+--------+--------------+----------+-------------+ |
scala> employees.filter("EMPLOYEE_ID = 100").show
+-----------+----------+---------+--------+------------+--------------------+------+--------+--------------+----------+-------------+
|EMPLOYEE_ID|FIRST_NAME|LAST_NAME| EMAIL|PHONE_NUMBER| HIRE_DATE|JOB_ID| SALARY|COMMISSION_PCT|MANAGER_ID|DEPARTMENT_ID|
+-----------+----------+---------+--------+------------+--------------------+------+--------+--------------+----------+-------------+
| 100| Zekeriya| Besiroglu|zbesiroglu|212.282.77|2017-07-11 00:00:...| VP|24000.00| null| null| 10|
+-----------+----------+---------+--------+------------+--------------------+------+--------+--------------+----------+-------------+
Bu datayı Spark’a çektikten sonra ister iterative kullanalım ister Nosql Databaselere okuduğumuz şeklin tersi şeklinde yazabiliriz.