Как добавить дату Dynami c в SQL оператор выбора из python - PullRequest
0 голосов
/ 30 марта 2020

Я не могу использовать динамическое c значение даты из запроса на выборку из моего кода pyspark.

С помощью запроса ниже я могу выбрать данные между датами создания:

df = spark.read \
  .format("com.databricks.spark.sqldatabase") \
  .option("url", "jdbc:sqlserver://xxxxxxxx.database.windows.net:1433;database=xxxxxx;\
          user=xxxxxxx-;password=xxxxx;encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30;") \
   .option("tempDir", "wasbs://xxxxxx@rxxxxxxx.core.windows.net/temp")\
   .option("forwardSparkAzureStorageCredentials", "true") \
   .option("query", "select * from dbo.Employee where CreatedDate > '2017-01-01' and CreatedDate <'2018-01-01'") \
   .load()

Я хочу указать значение созданной даты в качестве даты начала и окончания, например:

  • startdate = '2017-01-01'
  • enddate = '2018-01 -01 '
    df = spark.read \
      .format("com.databricks.spark.sqldatabase") \
      .option("url", "jdbc:sqlserver://xxxxxxxx.database.windows.net:1433;database=xxxxxx;\
              user=xxxxxxx-;password=xxxxx;encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30;") \
       .option("tempDir", "wasbs://xxxxxx@rxxxxxxx.core.windows.net/temp")\
       .option("forwardSparkAzureStorageCredentials", "true") \
       .option("query", "select * from dbo.Employee where CreatedDate > '+startdate+' and CreatedDate <**'+endate+'**") \
       .load()

При этом я получаю сообщение об ошибке:

[Microsoft] [ODB C Драйвер 17 для SQL Сервер] [ SQL Сервер] Сбой преобразования при преобразовании даты и / или времени из символьной строки.

...