2017-10-10 16 views
1

Mon code est exactement semblable à celui-ci. Seulement modifié les noms de variables et de tables ici. veuillez ignorer toute erreur de syntaxe lors de la frappe. Le code original se compile avec succès.Jeu de données Spark: les données de table ne sont pas exactement les mêmes que celles de la vue à partir de laquelle elles ont été créées

------ ------ CODE

Dataset<Row> test = sqlContext.sql("select * from test_table"); 

test.createOrReplaceTempView("temp_view_test"); 

sqlContext.sql("drop table if exist new_table"); 
sqlContext.sql("create table new_table as select * from temp_view_test"); 

//Code to print counts 

//count if dataset 
System.out.println("test count:"+test.count()); 

//count of temp view 
Dataset<Row> tempViewTestData = sqlContext.sql("select * from temp_view_test"); 
System.out.println("temp view count: "+tempViewTestData.count()); 

//count of newly created table 
Dataset<Row> newTableData = sqlContext.sql("select * from new_table"); 
System.out.println("New Table count: "+newTableData .count()); 

----- ---- SORTIE

nombre de tests: 9422720 nombre de visionnages de température: 9422720 Nouveau nombre de tableau: 9520364

----- ----- qUESTION

Ma question est pourquoi le nombre de nouvelle table diffère de comptage de vue de la température. Que dois-je faire pour que les deux comptes soient identiques.

Répondre

0

Enfin, j'ai obtenu une solution. C'était à cause des caractères japonais présents dans l'ensemble de données. On peut considérer cela si un problème similaire se pose.