Hive: 2.7.7Oracle SQL DeveloperCloudera JDBC Driver
Case - 1: Impossible de rejoindre non moins select a.*, b.* from default.employee a inner join default.employee b on a.salary < b.salary
SQL 错误: [Cloudera][HiveJDBCDriver](500051) ERROR processing query/statement. Error Code: 40000, SQL state: TStatus(statusCode:ERROR_STATUS, infoMessages:[*org.apache.hive.service.cli.HiveSQLException:Error while compiling statement: FAILED: SemanticException Cartesian products are disabled for safety reasons. If you know what you are doing, please sethive.strict.checks.cartesian.product to false and that hive.mapred.mode is not set to 'strict' to proceed. Note that if you may get errors or incorrect results if you make a mistake while using some of the unsafe features.:17:16,...(省去万字)SemanticException Cartesian products are disabled for safety reasons. If you know what you are doing, please sethive.strict.checks.cartesian.product to false and that hive.mapred.mode is not set to 'strict' to proceed. Note that if you may get errors or incorrect results if you make a mistake while using some of the unsafe features.), Query: select a.*, b.* from default.employee a inner join default.employee b on a.salary < b.salary.
pour assurer la stabilité entière du groupe, tout entier La participation est une défaillance interdite, pourquoi est donnée dans un code d'exception:
a échoué: Semanticepxception de produits cartésiens handicapés pour des raisons de sécurité
Cela évitera le réseau paralysé pour participer à de grandes données
Si vous savez que la participation n'est pas toutes des classes inattendues, ces configurations peuvent être modifiées pour démarrer des activités participantes non équivalentes.
set hive.strict.checks.cartesian.product=falseset hive.mapred.mode=nonstrictselect a.*, b.* from default.employee a inner join default.employee b on a.salary < b.salary
Le résultat est le suivant: