2016-09-28 2 views
0

Je cours un cluster Spark en utilisant Databricks. Je voudrais transférer des données d'un serveur en utilisant curl. Par exemple,Utilisation de curl dans un bloc-notes Databricks + Spark

curl -H "Content-Type: application/json" -H "auth:xxxx" -X GET "https://websites.net/Automation/Offline?startTimeInclusive=201609240100&endTimeExclusive=201609240200&dataFormat=json" -k > automation.json 

Comment peut-on faire dans un bloc-notes Databricks (de préférence en python, mais Scala est aussi bien)?

Répondre

1

En Scala, vous pouvez faire quelque chose comme:

import sys.process._ 
val command = """curl -H "Content-Type: application/json" -H "auth:xxxx" -X GET "http://google.com" -k > /home/user/automation.json""" 
Seq("/bin/bash", "-c", command).!! 
+0

Où dans le dbfs est le fichier enregistré? J'ai essayé -k> /tmp/automation.json, mais je ne peux pas localiser le fichier. – Feynman27

+0

Je ne l'ai pas testé exactement dans l'environnement databricks, mais je ne vois pas pourquoi, si cet appel réussit, vous ne devriez pas pouvoir accéder au fichier à l'emplacement que vous avez mentionné. –

+0

L'utilisation de -k> /dbfs/automation.json semble fonctionner. Merci. – Feynman27

0

En Databricks, vous pouvez exécuter une commande shell à partir d'une cellule en faisant% sh la première ligne de la cellule:

%sh 
curl -H "Content-Type: application/json" -H "auth:xxxx" -X GET "https://websites.net/Automation/Offline?startTimeInclusive=201609240100&endTimeExclusive=201609240200&dataFormat=json" -k > automation.json