<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Spark JDBC Netsuite  error - SQLSyntaxErrorException: [NetSuite][OpenAccess SDK JDBC Driver][OpenAcc in Data Engineering</title>
    <link>https://community.databricks.com/t5/data-engineering/spark-jdbc-netsuite-error-sqlsyntaxerrorexception-netsuite/m-p/123010#M46925</link>
    <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm&amp;nbsp; trying to query the Customer netsuite tables with spark jdbc and&amp;nbsp; I've added the .jar file to the cluster and trying to run the below:&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;jdbc_url = "jdbc:ns://xxxx.connect.api.netsuite.com:1708;ServerDataSource=NetSuite2.com;Encrypted=1;NegotiateSSLClose=false;CustomProperties=(AccountID=xxxx;RoleID=xxx)"&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;netsuite_query= f"""&lt;BR /&gt;(&lt;BR /&gt;SELECT TOP 10 * FROM Customer&lt;BR /&gt;) AS t&lt;BR /&gt;"""try:&lt;BR /&gt;print(f"Attempting to read using the query: {netsuite_query}")&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;df = spark.read \&lt;BR /&gt;.format("jdbc") \&lt;BR /&gt;.option("url", jdbc_url) \&lt;BR /&gt;.option("dbtable", netsuite_query) \&lt;BR /&gt;.option("user", "xxxx") \&lt;BR /&gt;.option("password", "xxx") \&lt;BR /&gt;.option("driver", "com.netsuite.jdbc.openaccess.OpenAccessDriver") \&lt;BR /&gt;.load()&lt;/P&gt;&lt;P&gt;display(df)&lt;/P&gt;&lt;P&gt;except Exception as e:&lt;BR /&gt;raise e&lt;/P&gt;</description>
    <pubDate>Thu, 26 Jun 2025 20:00:26 GMT</pubDate>
    <dc:creator>KristiLogos</dc:creator>
    <dc:date>2025-06-26T20:00:26Z</dc:date>
    <item>
      <title>Spark JDBC Netsuite  error - SQLSyntaxErrorException: [NetSuite][OpenAccess SDK JDBC Driver][OpenAcc</title>
      <link>https://community.databricks.com/t5/data-engineering/spark-jdbc-netsuite-error-sqlsyntaxerrorexception-netsuite/m-p/123010#M46925</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm&amp;nbsp; trying to query the Customer netsuite tables with spark jdbc and&amp;nbsp; I've added the .jar file to the cluster and trying to run the below:&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;jdbc_url = "jdbc:ns://xxxx.connect.api.netsuite.com:1708;ServerDataSource=NetSuite2.com;Encrypted=1;NegotiateSSLClose=false;CustomProperties=(AccountID=xxxx;RoleID=xxx)"&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;netsuite_query= f"""&lt;BR /&gt;(&lt;BR /&gt;SELECT TOP 10 * FROM Customer&lt;BR /&gt;) AS t&lt;BR /&gt;"""try:&lt;BR /&gt;print(f"Attempting to read using the query: {netsuite_query}")&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;df = spark.read \&lt;BR /&gt;.format("jdbc") \&lt;BR /&gt;.option("url", jdbc_url) \&lt;BR /&gt;.option("dbtable", netsuite_query) \&lt;BR /&gt;.option("user", "xxxx") \&lt;BR /&gt;.option("password", "xxx") \&lt;BR /&gt;.option("driver", "com.netsuite.jdbc.openaccess.OpenAccessDriver") \&lt;BR /&gt;.load()&lt;/P&gt;&lt;P&gt;display(df)&lt;/P&gt;&lt;P&gt;except Exception as e:&lt;BR /&gt;raise e&lt;/P&gt;</description>
      <pubDate>Thu, 26 Jun 2025 20:00:26 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/spark-jdbc-netsuite-error-sqlsyntaxerrorexception-netsuite/m-p/123010#M46925</guid>
      <dc:creator>KristiLogos</dc:creator>
      <dc:date>2025-06-26T20:00:26Z</dc:date>
    </item>
    <item>
      <title>Re: Spark JDBC Netsuite  error - SQLSyntaxErrorException: [NetSuite][OpenAccess SDK JDBC Driver][Ope</title>
      <link>https://community.databricks.com/t5/data-engineering/spark-jdbc-netsuite-error-sqlsyntaxerrorexception-netsuite/m-p/134245#M50062</link>
      <description>&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;If you are on a Spark version that supports&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;.option("query", ...)&lt;/CODE&gt;, you can do:&lt;/P&gt;
&lt;DIV class="w-full md:max-w-[90vw]"&gt;
&lt;DIV class="codeWrapper text-light selection:text-super selection:bg-super/10 my-md relative flex flex-col rounded font-mono text-sm font-normal bg-subtler"&gt;
&lt;DIV class="translate-y-xs -translate-x-xs bottom-xl mb-xl sticky top-0 flex h-0 items-start justify-end"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="-mt-xl"&gt;
&lt;DIV&gt;
&lt;DIV class="text-quiet bg-subtle py-xs px-sm inline-block rounded-br rounded-tl-[3px] font-thin" data-testid="code-language-indicator"&gt;python&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV class="pr-lg"&gt;&lt;SPAN&gt;&lt;CODE&gt;df &lt;SPAN class="token token operator"&gt;=&lt;/SPAN&gt; spark&lt;SPAN class="token token punctuation"&gt;.&lt;/SPAN&gt;read \
    &lt;SPAN class="token token punctuation"&gt;.&lt;/SPAN&gt;&lt;SPAN class="token token"&gt;format&lt;/SPAN&gt;&lt;SPAN class="token token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token token"&gt;"jdbc"&lt;/SPAN&gt;&lt;SPAN class="token token punctuation"&gt;)&lt;/SPAN&gt; \
    &lt;SPAN class="token token punctuation"&gt;.&lt;/SPAN&gt;option&lt;SPAN class="token token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token token"&gt;"url"&lt;/SPAN&gt;&lt;SPAN class="token token punctuation"&gt;,&lt;/SPAN&gt; jdbc_url&lt;SPAN class="token token punctuation"&gt;)&lt;/SPAN&gt; \
    &lt;SPAN class="token token punctuation"&gt;.&lt;/SPAN&gt;option&lt;SPAN class="token token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token token"&gt;"query"&lt;/SPAN&gt;&lt;SPAN class="token token punctuation"&gt;,&lt;/SPAN&gt; &lt;SPAN class="token token"&gt;"SELECT TOP 10 * FROM Customer"&lt;/SPAN&gt;&lt;SPAN class="token token punctuation"&gt;)&lt;/SPAN&gt; \
    &lt;SPAN class="token token punctuation"&gt;.&lt;/SPAN&gt;option&lt;SPAN class="token token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token token"&gt;"user"&lt;/SPAN&gt;&lt;SPAN class="token token punctuation"&gt;,&lt;/SPAN&gt; &lt;SPAN class="token token"&gt;"xxxx"&lt;/SPAN&gt;&lt;SPAN class="token token punctuation"&gt;)&lt;/SPAN&gt; \
    &lt;SPAN class="token token punctuation"&gt;.&lt;/SPAN&gt;option&lt;SPAN class="token token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token token"&gt;"password"&lt;/SPAN&gt;&lt;SPAN class="token token punctuation"&gt;,&lt;/SPAN&gt; &lt;SPAN class="token token"&gt;"xxx"&lt;/SPAN&gt;&lt;SPAN class="token token punctuation"&gt;)&lt;/SPAN&gt; \
    &lt;SPAN class="token token punctuation"&gt;.&lt;/SPAN&gt;option&lt;SPAN class="token token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token token"&gt;"driver"&lt;/SPAN&gt;&lt;SPAN class="token token punctuation"&gt;,&lt;/SPAN&gt; &lt;SPAN class="token token"&gt;"com.netsuite.jdbc.openaccess.OpenAccessDriver"&lt;/SPAN&gt;&lt;SPAN class="token token punctuation"&gt;)&lt;/SPAN&gt; \
    &lt;SPAN class="token token punctuation"&gt;.&lt;/SPAN&gt;load&lt;SPAN class="token token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token token punctuation"&gt;)&lt;/SPAN&gt;
display&lt;SPAN class="token token punctuation"&gt;(&lt;/SPAN&gt;df&lt;SPAN class="token token punctuation"&gt;)&lt;/SPAN&gt;
&lt;/CODE&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;But note that some JDBC drivers, including NetSuite, may have restrictions, so review your Spark and JDBC connector documentation and test with preliminary table queries first.&lt;/P&gt;
&lt;H2 class="mb-2 mt-4 font-display font-semimedium text-base first:mt-0"&gt;Troubleshooting Common Issues&lt;/H2&gt;
&lt;UL class="marker:text-quiet list-disc"&gt;
&lt;LI class="py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [&amp;amp;&amp;gt;p]:pt-0 [&amp;amp;&amp;gt;p]:mb-2 [&amp;amp;&amp;gt;p]:my-0"&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;&lt;STRONG&gt;Jar File Location&lt;/STRONG&gt;: Confirm the .jar is on all Spark worker nodes and that the cluster recognizes the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;com.netsuite.jdbc.openaccess.OpenAccessDriver&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;class.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI class="py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [&amp;amp;&amp;gt;p]:pt-0 [&amp;amp;&amp;gt;p]:mb-2 [&amp;amp;&amp;gt;p]:my-0"&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;&lt;STRONG&gt;NetSuite Permissions&lt;/STRONG&gt;: Double-check that the user/role (AccountID, RoleID) has correct access rights to view the "Customer" table.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI class="py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [&amp;amp;&amp;gt;p]:pt-0 [&amp;amp;&amp;gt;p]:mb-2 [&amp;amp;&amp;gt;p]:my-0"&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;&lt;STRONG&gt;Port and Endpoint&lt;/STRONG&gt;: Ensure firewall/network settings allow traffic to the required NetSuite JDBC endpoint and port.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI class="py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [&amp;amp;&amp;gt;p]:pt-0 [&amp;amp;&amp;gt;p]:mb-2 [&amp;amp;&amp;gt;p]:my-0"&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;&lt;STRONG&gt;Driver Class&lt;/STRONG&gt;: Confirm the driver class is spelled correctly and matches your .jar file.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI class="py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [&amp;amp;&amp;gt;p]:pt-0 [&amp;amp;&amp;gt;p]:mb-2 [&amp;amp;&amp;gt;p]:my-0"&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;&lt;STRONG&gt;Error Messages&lt;/STRONG&gt;: Carefully check any exception traceback for specific hints; common errors include authentication failures, missing drivers, or SQL syntax not supported by NetSuite JDBC.&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2 class="mb-2 mt-4 font-display font-semimedium text-base first:mt-0"&gt;Recommendations&lt;/H2&gt;
&lt;UL class="marker:text-quiet list-disc"&gt;
&lt;LI class="py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [&amp;amp;&amp;gt;p]:pt-0 [&amp;amp;&amp;gt;p]:mb-2 [&amp;amp;&amp;gt;p]:my-0"&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;Start with&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;.option("dbtable", "Customer")&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;for a basic read.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI class="py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [&amp;amp;&amp;gt;p]:pt-0 [&amp;amp;&amp;gt;p]:mb-2 [&amp;amp;&amp;gt;p]:my-0"&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;Gradually introduce more complex queries if&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;.option("query", ...)&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;is supported.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI class="py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [&amp;amp;&amp;gt;p]:pt-0 [&amp;amp;&amp;gt;p]:mb-2 [&amp;amp;&amp;gt;p]:my-0"&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;Review NetSuite JDBC and Spark documentation for compatibility notes.&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;</description>
      <pubDate>Wed, 08 Oct 2025 16:02:58 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/spark-jdbc-netsuite-error-sqlsyntaxerrorexception-netsuite/m-p/134245#M50062</guid>
      <dc:creator>mark_ott</dc:creator>
      <dc:date>2025-10-08T16:02:58Z</dc:date>
    </item>
  </channel>
</rss>

