Esempio n. 1
0
    def to_ddl(self):
        yield 'STORED AS AVRO'
        yield f"LOCATION '{self.path}'"

        schema = json.dumps(self.avro_schema, indent=2, sort_keys=True)
        schema = '\n'.join(x.rstrip() for x in schema.splitlines())

        props = {'avro.schema.literal': schema}
        yield format_tblproperties(props)
Esempio n. 2
0
    def to_ddl(self):
        yield 'ROW FORMAT DELIMITED'

        if self.delimiter is not None:
            yield f"FIELDS TERMINATED BY '{self.delimiter}'"

        if self.escapechar is not None:
            yield f"ESCAPED BY '{self.escapechar}'"

        if self.lineterminator is not None:
            yield f"LINES TERMINATED BY '{self.lineterminator}'"

        yield f"LOCATION '{self.path}'"

        if self.na_rep is not None:
            props = {'serialization.null.format': self.na_rep}
            yield format_tblproperties(props)
Esempio n. 3
0
 def compile(self):
     return '{}\n{} AS\n{}'.format(
         self._create_line(),
         format_tblproperties(self._get_table_properties()),
         self.select.compile(),
     )
Esempio n. 4
0
 def compile(self):
     return '{}\n{}\n{}'.format(
         self._create_line(),
         format_schema(self.schema),
         format_tblproperties(self._get_table_properties()),
     )