
                             d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddl	m
Z ddl	mZ  G d	 d
ej                        Zy)zBase class for Spark Sql Job.    )absolute_import)division)unicode_literals)encoding)arg_parsers)base)utilc                   @    e Zd ZdZed        Zed        Zed        Zy)SparkSqlBasez$Submit a Spark SQL job to a cluster.c           	         | j                  d      }|j                  dddddg d	       |j                  d
dd       | j                  dt        j                         dg d       | j                  dt        j                         dd       | j                  dt        j                         dd       | j                  dt
        j                         | j                  dt        j                         dd       y)zCParses command-line arguments specific to submitting SparkSql jobs.T)requiredz	--executez-eQUERYqueriesappendz0A Spark SQL query to execute as part of the job.)metavardestactiondefaulthelpz--filez-fzCHCFS URI of file containing Spark SQL script to execute as the job.)r   z--jarsJARziComma separated list of jar files to be provided to the executor and driver classpaths. May contain UDFs.)typer   r   r   z--paramszPARAM=VALUEz?A list of key value pairs to set variables in the Hive queries.)r   r   r   z--propertieszPROPERTY=VALUEz,A list of key value pairs to configure Hive.z--properties-filez--driver-log-levelszPACKAGE=LEVELzpA list of package to log4j log level pairs to configure driver logging. For example: root=FATAL,com.example=INFON)add_mutually_exclusive_groupadd_argumentr   ArgListArgDictjob_utilPROPERTIES_FILE_HELP_TEXT)parserdrivers     9lib/googlecloudsdk/command_lib/dataproc/jobs/spark_sql.pyArgszSparkSqlBase.Args    s3    00$0?F
T?  A $     "B  D   "N	  P
   " ;	  =
 //  1   "B	  D    c                 4    | j                   | j                  dS )Njarsfiler$   )argss    r    GetFilesByTypezSparkSqlBase.GetFilesByTypeJ   s     				 r"   c                    | j                  |d   |d   |      }|j                  r!| j                  |j                        |_        |j                  r9t        j                  |j                  | j                   j                        |_        t        j                  |j                  |j                        }|r1t        j                  || j                   j                  d      |_        ||_        y)z2Populates the sparkSqlJob member of the given job.r%   r&   )jarFileUrisqueryFileUriloggingConfig)r   T)
sort_itemsN)SparkSqlJobr   	QueryList	queryListparamsr   DictToAdditionalPropertyMessageScriptVariablesValuescriptVariablesr   BuildJobProperties
propertiesproperties_filePropertiesValuesparkSqlJob)messagesjobfiles_by_typelogging_configr'   spark_sql_jobjob_propertiess          r    ConfigureJobzSparkSqlBase.ConfigureJobP   s     ((!&)"6*$ ) M || ( 2 24<< 2 Hm{{&.&N&N
++x++@@'m# 00--N !)!I!I
(..>>4"m $COr"   N)__name__
__module____qualname____doc__staticmethodr!   r(   r@    r"   r    r   r      sB    ,'D 'DR  
 $ $r"   r   N)rD   
__future__r   r   r   apitools.base.pyr   googlecloudsdk.callioper   (googlecloudsdk.command_lib.dataproc.jobsr   job_baser	   r   JobBaser   rF   r"   r    <module>rM      s3     $ &  ' % / E EM$8## M$r"   