Exigences et limitations standard en matière de compute
Cette page inclut une liste d'exigences et de limites pour le compute standard. Si vous utilisez le compute classique, Databricks recommande d'utiliser le mode d'accès standard, sauf si votre charge de travail dépend de l'une des limites énumérées ci-dessous.
Les scripts d'initialisation et les bibliothèques sont pris en charge différemment selon les modes d'accès et les versions de Databricks Runtime. Consultez Où les scripts d'initialisation peuvent-ils être installés ? et bibliothèques étendues au compute.
Limites actuelles du compute standard
Les sections suivantes énumèrent les limitations du compute standard basées sur la version la plus récente de Databricks Runtime. Pour les limitations qui s'appliquent aux versions antérieures de Databricks Runtime, consultez les Limitations dépendantes du Runtime.
Si ces fonctionnalités sont requises pour votre charge de travail, utilisez plutôt un compute dédié.
Limitations générales du compute standard
- Databricks Runtime pour le ML n'est pas pris en charge. Installez plutôt toute bibliothèque ML non incluse dans Databricks Runtime en tant que bibliothèque à l'échelle du compute.
- Le compute compatible GPU n'est pas pris en charge.
- Les Job tasks Spark ne sont pas prises en charge. Utilisez une tâche JAR à la place.
- DBUtils et d'autres clients ne peuvent lire depuis le stockage cloud qu'à l'aide d'un emplacement externe.
- La racine et les montages DBFS ne prennent pas en charge FUSE.
Limitations linguistiques
- R n'est pas pris en charge.
Limitations de Spark API
-
Spark Context (
sc),spark.sparkContextetsqlContextne sont pas pris en charge pour Scala :- Databricks recommande d'utiliser la variable
sparkpour interagir avec l'instanceSparkSession. - Les
scfonctions suivantes ne sont pas non plus prises en charge :emptyRDD,range,init_batched_serializer,parallelize,pickleFile,textFile,wholeTextFiles,binaryFiles,binaryRecords,sequenceFile,newAPIHadoopFile,newAPIHadoopRDD,hadoopFile,hadoopRDD,union,runJob,setSystemProperty,uiWebUrl,stop,setJobGroup,setLocalProperty,getConf.
- Databricks recommande d'utiliser la variable
-
Le réglage de certaines configurations Spark n'est pas pris en charge. La création ou la modification d'un cluster qui définit une propriété restreinte échoue avec une erreur. Pour la liste complète, consultez les limitations de configuration Spark.
-
Lors de la création d'un DataFrame à partir de données locales à l'aide de
spark.createDataFrame, la taille des lignes ne peut pas dépasser 128 Mo. -
Les APIs RDD ne sont pas prises en charge.
-
Spark Connect, qui est utilisé dans les versions plus récentes de Databricks Runtime, diffère l'analyse et la résolution de noms au moment de l'exécution, ce qui peut modifier le comportement de votre code. Voir Comparaison de Spark Connect à Spark Classic.
Limitations des UDF
- Les UDF Hive ne sont pas pris en charge. Au lieu de cela, utilisez les UDF dans Unity Catalog.
- Les UDF Scala ne peuvent pas être utilisées dans les fonctions d'ordre supérieur.
Limitations du streaming
Certaines des options Kafka listées bénéficient d'un support limité lorsqu'elles sont utilisées pour des configurations prises en charge sur Databricks. Toutes les limitations Kafka listées sont valides pour le traitement batch et Stream. Voir Connecter à Apache Kafka.
-
L'utilisation des sources de socket n'est pas prise en charge.
-
Le
sourceArchiveDirdoit se trouver au même emplacement externe que la source lorsque vous utilisezoption("cleanSource", "archive")avec une source de données gérée par Unity Catalog. -
Pour les sources et récepteurs Kafka, les options suivantes ne sont pas prises en charge :
kafka.sasl.client.callback.handler.classkafka.sasl.login.callback.handler.classkafka.sasl.login.classkafka.partition.assignment.strategy
-
Python
foreachBatchne prend pas en chargeThreadPoolExecutorni l’exécution multithread. L'exécution multithread peut ne pas générer d'erreurs, mais peut entraîner une corruption des données ou des résultats incohérents. -
Les profils d'instance qui configurent l'accès aux sources externes telles que Kafka ou Kinesis pour les charges de travail streaming ne sont pas pris en charge. Utilisez plutôt les identifiants de service.
Limitations du réseau et du système de fichiers
-
Le compute standard exécute les commandes en tant qu'utilisateur à faibles privilèges, interdit d'accéder aux parties sensibles du système de fichiers.
-
Les chemins de style POSIX (
/) pour DBFS ne sont pas pris en charge. -
Seuls les administrateurs de workspace et les utilisateurs disposant des autorisations ANY FILE peuvent interagir directement avec les fichiers à l'aide de DBFS.
-
Vous ne pouvez pas vous connecter au service de métadonnées d'instance (IMDS) ou à d'autres services s'exécutant dans le Virtual Private Cloud (VPC) Databricks. Pour accéder aux services cloud à l'aide de boto3, utilisez les identifiants de service.
Limitations des variables d'environnement
Seul un ensemble prédéfini de variables d'environnement est disponible pour le moteur Spark et les scripts d'initialisation sur le compute standard. Les variables d'environnement que vous définissez sur un cluster mais qui ne figurent pas dans cet ensemble restent disponibles pour votre code utilisateur, y compris les fonctions définies par l'utilisateur (UDF), mais ne sont pas disponibles pour le moteur Spark ou les scripts d'initialisation.
Cet ensemble inclut des variables courantes de configuration, d'identifiant et d'exécution. Les exemples suivants ne sont pas exhaustifs :
- Mise en réseau et proxys :
HTTP_PROXY,HTTPS_PROXY,NO_PROXY - Certificats TLS :
REQUESTS_CA_BUNDLE,SSL_CERT_FILE - Informations d'identification et région AWS :
AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY,AWS_REGION,AWS_DEFAULT_REGION - Informations d'identification Azure :
AZURE_CLIENT_ID,AZURE_CLIENT_SECRET,AZURE_TENANT_ID - Identifiants Google Cloud :
GOOGLE_APPLICATION_CREDENTIALS - Connexion Databricks :
DATABRICKS_HOST,DATABRICKS_TOKEN - Paramètres régionaux et fuseau horaire :
TZ,LANG,LC_ALL - Parallélisme et threading :
OMP_NUM_THREADS,OPENBLAS_NUM_THREADS,MKL_NUM_THREADS,NUMEXPR_NUM_THREADS - Observabilité :
DD_API_KEY,DD_SITE,DD_ENV - Valeurs par défaut Unity Catalog :
CATALOG,CATALOG_NAME
Limitations du noyau Scala
Les limitations suivantes s'appliquent lorsque vous utilisez le noyau Scala sur un compute standard :
- Certaines classes ne peuvent pas être utilisées dans votre code si elles entrent en conflit avec la bibliothèque interne du kernel almond, notamment
Input. Pour obtenir la liste des imports définis d'almond, consultez almond imports. - L'enregistrement direct dans log4j n'est pas pris en charge.
- Dans l'interface utilisateur, la liste déroulante des schémas de dataframe n'est pas prise en charge.
- Si votre Driver rencontre une erreur OOM, le REPL Scala ne se terminera pas.
//connector/sql-aws-connectors:sql-aws-connectorsn'est pas dans la cible bazel du REPL Scala, utilisez les résultats dansClassNotFoundException.- Le noyau Scala est incompatible avec SQLImplicits.
Limitations dépendantes de l'environnement d'exécution
Les limitations suivantes ont été résolues grâce aux mises à jour du runtime, mais peuvent toujours s'appliquer à votre charge de travail si vous utilisez un runtime plus ancien.
Prise en charge linguistique
Fonctionnalité | Version requise de Databricks Runtime |
|---|---|
Scala | 13,3 ou version ultérieure |
Toutes les bibliothèques Java et Scala intégrées au runtime disponibles par default | 15,4 LTS ou supérieur (pour 15,3 ou inférieur, définissez |
Prise en charge de Spark API
Fonctionnalité | Version requise de Databricks Runtime |
|---|---|
Spark ML | 17,0 ou supérieur |
Python : | 14.0 ou supérieur |
Scala | 15.4 LTS ou version ultérieure |
Support UDF
Fonctionnalité | Version requise de Databricks Runtime |
|---|---|
| 14.3 LTS ou version ultérieure |
UDF scalaires Scala et UDAFs Scala | 14.3 LTS ou version ultérieure |
Importer des modules depuis des dossiers Git, des fichiers de Workspace ou des volumes dans les UDF PySpark | 14.3 LTS ou version ultérieure |
Utilisez des versions personnalisées de | 14.3 LTS ou version ultérieure |
UDFs Python et Pandas non scalaires, y compris les UDAFs, UDTFs et Pandas sur Spark | 14.3 LTS ou version ultérieure |
UDF scalaires Python et UDF Pandas | 13.3 LTS ou une version ultérieure |
Prise en charge du streaming
Fonctionnalité | Version requise de Databricks Runtime |
|---|---|
| 16,3 ou supérieur |
| 14.3 LTS ou version ultérieure |
Scala | 16,1 ou supérieur |
Scala | 16.2 ou supérieur |
Scala | 14,2 ou plus |
Options Kafka | 13.3 LTS ou une version ultérieure |
Scala | 16,1 ou supérieur |
Python | 14.3 LTS ou version ultérieure |
De plus, pour Python, foreachBatch présente les modifications de comportement suivantes sur Databricks Runtime 14.0 et versions ultérieures :
print()Les commandes écrivent la sortie dans les Logs Driver.- Vous ne pouvez pas accéder au sous-module
dbutils.widgetsà l'intérieur de la fonction. - Tous les fichiers, modules ou objets référencés dans la fonction doivent être sérialisables et disponibles sur Spark.
Prise en charge du réseau et du système de fichiers
Fonctionnalité | Version requise de Databricks Runtime |
|---|---|
Connexions aux ports autres que 80 et 443 | 12.2 LTS ou version ultérieure |
Limitations de la configuration Spark
Avec Databricks Runtime 19 et versions ultérieures, vous ne pouvez pas définir les propriétés de configuration Spark suivantes en mode d'accès standard. La création ou la modification d'un cluster qui définit l'une de ces propriétés, ou une propriété qui commence par l'un des préfixes listés (affiché avec un .* final), échoue avec une erreur. Supprimez ces propriétés de votre configuration de cluster, de vos politiques de compute et de vos définitions de Job avant la mise à niveau.
Catégorie | Propriétés de configuration Spark restreintes |
|---|---|
Options JVM, classpath et de bibliothèque native |
|
Injection de variables d'environnement |
|
Bibliothèques, JAR et fichiers |
|
Fichiers JAR du Hive metastore |
|
Exécutables Python et R |
|
Configuration des pods Kubernetes |
|
Accès au système de fichiers local |
|
Isolation et contrôle d'accès Databricks |
|