Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
2 years ago
Solved

Unable to read SQL Endpoint view into a Notebook dataframe

Hi All,

We are seeking to use a view within a SQL analytics Endpoint as a source of data for a dataframe in a notebook.

When we seek to query it, we see an error like  [TABLE_OR_VIEW_NOT_FOUND]

code looks like this. The view is under the DBO schema.

 

df = spark.sql("SELECT * FROM lakehousename.viewname LIMIT 1000")
display(df)

 



Is this possible? I feel like it wont be :*(  but staying positive.

Thanks! 

  • Hi Anonymous no I don't believe this will work as the View has been created using the SQL Analytics endpoint, there is no metadata sync from the SQL Endpoint to the Lakehouse (it's the other way round). 

     

    You could use JDBC connector in the Notebook to query the View in the SQL Endpoint, or create the View in the Lakehouse using Spark.

     

    edit: I believe pyodbc would work here 

6 Replies

  • AndyDDC's avatar
    AndyDDC
    Most Valuable Professional

    Hi Anonymous no I don't believe this will work as the View has been created using the SQL Analytics endpoint, there is no metadata sync from the SQL Endpoint to the Lakehouse (it's the other way round). 

     

    You could use JDBC connector in the Notebook to query the View in the SQL Endpoint, or create the View in the Lakehouse using Spark.

     

    edit: I believe pyodbc would work here 

    • SorenSparso's avatar
      SorenSparso
      Advocate I

      Hi,

      Do you know how to get the authentication to work in the SQL endpoint? I have tried different combinations of below statement, but it is not working:

      df = spark.read\
          .format("jdbc") \
          .option("url", f"jdbc:sqlserver://***.datawarehouse.pbidedicated.windows.net:1433;database=***") \
          .option("dbtable", "someTable") \
          .option("authentication", "ActiveDirectoryIntegrated") \
          .option("encrypt", "true") \
          .option("clientid", "***") \
          .option("hostNameInCertificate", "*.pbidedicated.windows.net") \
          .load()
      display(df)
       
      Thanks 🙂
    • PunChili's avatar
      PunChili
      Advocate II

      Hi, 

      I can read data by using pyodbc package from endpoint. Now I would like to store these results in a delta table in lakehouse... is this possible?

       

      Thank you 😄