Se moquer d'une Étincelle RDD dans les tests unitaires
Est-il possible de simuler une RDD sans l'aide de sparkContext?
Je veux unité de test de la fonction d'utilité suivante:
def myUtilityFunction(data1: org.apache.spark.rdd.RDD[myClass1], data2: org.apache.spark.rdd.RDD[myClass2]): org.apache.spark.rdd.RDD[myClass1] = {...}
Donc j'ai besoin de passer data1 et data2 à myUtilityFunction. Comment puis-je créer un données1 à partir d'une maquette org.apache.spark.rdd.RDD[myClass1], au lieu de créer un véritable RDD de SparkContext? Merci!!!!
Pourquoi ne pourriez-vous pas? Ce sont juste des objets de base, vous pouvez se moquer d'eux, bien que très probablement, il est généralement plus facile à utiliser
sc.parallelize
que de se moquer de l' map
/flatMap
/... méthodes de trop.OriginalL'auteur Edamame | 2015-06-19
Vous devez vous connecter pour publier un commentaire.
Je suis totalement d'accord avec @Holden!
Se moquant de RDD est difficile; l'exécution de vos tests unitaires dans un local
Spark contexte est préféré, comme recommandé dans le guide de programmation.
Je sais que cela peut ne pas être techniquement une unité de test, mais il est, espérons-le près
assez.
Mais si vous êtes vraiment intéressé et que vous voulez toujours essayer de se moquant de Rdd, je vais vous suggérons de lire les ImplicitSuite code de test.
La seule raison pour laquelle ils sont pseudo-se moquer de la RDD est de tester si
implict
fonctionne bien avec le compilateur, mais ils n'ont pas réellement besoin d'un vrai RDD.Et c'est même pas une vraie maquette. Il crée un objet nul de type RDD[T]
OriginalL'auteur eliasah
Rdd sont assez complexes, se moquant d'eux est probablement pas la meilleure façon d'aller sur la création de données de test. Au lieu de cela, je vous recommande d'utiliser sc.paralléliser avec vos données. Je suis aussi (un peu biaisé) pense que https://github.com/holdenk/spark-testing-base peut vous aider en vous fournissant un trait de configuration & de la mise à nu de l'Étincelle Contexte pour vos tests.
Il y a, la version actuelle prend en charge 2.1
OriginalL'auteur Holden