Vi håller för närvarande på att utveckla en Apache Spark ODBC-drivrutin, som låter dig arbeta med Spark-data i applikationer som Perl, PHP, Excel och Oracle).
Konfigurera en ODBC-datakälla
Innan Apache Spark ODBC-drivrutinen kan användas för att ansluta en applikation till Apache Spark, är det nödvändigt att konfigurera en ODBC-datakälla. En ODBC-datakälla lagrar anslutningsdetaljerna för måldatabasen (t.ex. Apache Spark) och ODBC-drivrutinen som krävs för att ansluta till den (t.ex. Apache Spark ODBC-drivrutinen).
För att använda Apache Spark ODBC-drivrutinen måste du skapa ett Apache Spark-utvecklarkonto. Logga in på Apache Sparks utvecklarinstrumentpanel och skapa en REST API-app. Du behöver appens klient-ID och hemlighet för att skapa en datakälla för Apache Spark ODBC-drivrutinen.
ODBC-datakällor konfigureras i ODBC Administrator, som ingår i Windows.
I ODBC Administrator:
- Välj fliken System DSN och välj sedan Lägg till.
- I dialogrutan Skapa ny datakälla väljer du Easysoft ODBC-Apache Spark Driver och sedan Slutför.
- Fyll i fälten i dialogrutan Easysoft ODBC-Apache Spark Driver DSN Setup.
- I din app ansluter du till din nykonfigurerade datakälla och kör en exempelfråga. Till exempel:
select * from MyTable
Arbeta med Apache Spark-data i Perl
Strawberry Perl är en Perl-distribution för Windows som inkluderar de nödvändiga mellanvaruskikten (Perl DBI och Perl DBD::ODBC) för att möjliggöra för Apache Spark ODBC-drivrutinen att ansluta dina Perl-applikationer till Apache Spark.
- Här är ett Perl-skript som hämtar lite Apache Spark-data:
#!/usr/bin/perl -w use strict; use DBI; my $dbh = DBI-> connect('dbi:ODBC:MyApacheSparkDataSource'); my $sql = "SELECT MyCol FROM MyTable LIMIT 10"; # Prepare the statement. my $sth = $dbh->prepare($sql) or die "Can't prepare statement: $DBI::errstr"; # Execute the statement. $sth->execute(); my($SparkCol); # Fetch and display the result set value. while(($SparkCol) = $sth->fetchrow()){ print("$SparkCol\n"); } $dbh->disconnect if ($dbh);
Arbeta med Apache Spark-data i PHP
- Här är ett PHP-skript som hämtar lite Apache Spark-data:
<?php $con = odbc_connect("MyApacheSparkDataSource", "", ""); $err = odbc_errormsg(); if (strlen($err) <> 0) { echo odbc_errormsg(); } else { $rs2 = odbc_exec($con, "select MyCol from MyTable"); odbc_result_all($rs2); odbc_close($con); } ?>
Ansluter Excel till Apache Spark
Följ dessa steg för att returnera data från Apache Spark till Microsoft Excel genom att använda Microsoft Query:
- På Data fliken, välj Ny fråga> Från annan källa> Från ODBC .
- Välj Apache Spark ODBC-datakällan när du uppmanas.
- Välj en tabell från de tillgängliga datauppsättningarna.
- Välj Ladda för att returnera Apache Spark-data till arbetsbladet.
Observera att för stora resultatuppsättningar kan du behöva filtrera data med Excel innan data kan returneras till kalkylbladet.
Anslut till Apache Spark från Oracle
- Skapa en DG4ODBC init-fil på din Oracle-dator. För att göra detta, byt till
%ORACLE_HOME%\hs\admin
katalog. Skapa en kopia av fileninitdg4odbc.ora
. Namnge den nya fileninitspark.ora
.Obs I dessa instruktioner ersätter du %ORACLE_HOME% med platsen för din Oracle HOME-katalog. Till exempel,
C:\oraclexe\app\oracle\product\11.2.0\server
. - Se till att dessa parametrar och värden finns i din init-fil:
HS_FDS_CONNECT_INFO = MyApacheSparkDataSource
- Kommentera raden som möjliggör DG4ODBC-spårning. Till exempel:
#HS_FDS_TRACE_LEVEL = <trace_level>
- Lägg till en post i
%ORACLE_HOME%\network\admin\listener.ora
som skapar en SID_NAME för DG4ODBC. Till exempel:SID_LIST_LISTENER = (SID_LIST = (SID_DESC= (SID_NAME=spark) (ORACLE_HOME=%ORACLE_HOME%) (PROGRAM=dg4odbc) ) )
- Lägg till en DG4ODBC-post i
%ORACLE_HOME%\network\admin\tnsnames.ora
som anger SID_NAME som skapades i föregående steg. Till exempel:SPARK = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = oracle_host)(PORT = 1521)) (CONNECT_DATA = (SID = spark) ) (HS = OK) )
Ersätt oracle_host med värdnamnet för din Oracle-maskin.
- Starta (eller starta om) Oracle Listener:
cd %ORACLE_HOME%\bin lsnrctl stop lsnrctl start
- Anslut till din Oracle-databas i SQL*Plus.
- I SQL*Plus, skapa en databaslänk för mål-Apache Spark-instansen. Till exempel:
CREATE PUBLIC DATABASE LINK SPARKLINK CONNECT TO "mydummyuser" IDENTIFIED BY "mydummypassword" USING 'spark';
- Försök att söka efter dina Apache Spark-data. Till exempel:
SELECT * FROM "MyTable"@SPARKLINK;
Anteckningar
- Om du har problem med att ansluta till Apache Spark från Oracle, aktivera DG4ODBC-spårning och kontrollera spårningsfilerna som skrivits till
%ORACLE_HOME%\hs\trace
katalog. För att aktivera DG4ODBC-spårning, lägg till radenHS_FDS_TRACE_LEVEL = DEBUG
tillinitspark.ora
och starta/starta om Oracle-lyssnaren. Omtrace
katalogen finns inte, skapa den. - Om du aktiverar ODBC Driver Manager-spårning, men inte får en spårningsfil eller får en tom spårningsfil (kontrollera efter C:\SQL.log), ändrar du spårningsfilens plats till Windows TEMP-katalogen. Till exempel,
C:\Windows\Temp\SQL.log
.