

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Superare il limite di dimensione del blocco di codice di 68k
<a name="notebooks-spark-troubleshooting-code-block-size-limit"></a>

Athena for Spark ha un limite noto di dimensione del blocco del codice di calcolo di 68000 caratteri. Quando esegui un calcolo con un blocco di codice superiore a questo limite, puoi ricevere il seguente messaggio di errore:

'...' in 'CodeBlock' non è riuscito a soddisfare il vincolo: il member deve avere una lunghezza inferiore o uguale a 68000

L'immagine seguente mostra questo errore nell'editor di notebook della console Athena.

![Messaggio di errore relativo alla dimensione del blocco di codice nell'editor di notebook Athena](http://docs.aws.amazon.com/it_it/athena/latest/ug/images/notebooks-spark-troubleshooting-code-block-size-limit-1.png)


Lo stesso errore può verificarsi quando si utilizza AWS CLI per eseguire un calcolo con un blocco di codice di grandi dimensioni, come nell'esempio seguente.

```
aws athena start-calculation-execution \ 
    --session-id "{{{SESSION_ID}}}" \ 
    --description "{{{SESSION_DESCRIPTION}}}" \ 
    --code-block "{{{LARGE_CODE_BLOCK}}}"
```

Il comando restituisce il seguente messaggio di errore:

{{{LARGE\_CODE\_BLOCK}}}in 'CodeBlock' non è riuscito a soddisfare il vincolo: il membro deve avere una lunghezza inferiore o uguale a 68000

## Soluzione alternativa
<a name="notebooks-spark-troubleshooting-code-block-size-limit-workaround"></a>

Per risolvere il problema, carica il file contenente la query o il codice di calcolo su Amazon S3. Quindi, usa boto3 per leggere il file ed eseguire il codice o il codice SQL.

Gli esempi seguenti presuppongono che tu abbia già caricato il file contenente la tua query SQL o il codice Python su Amazon S3.

### Esempio SQL
<a name="notebooks-spark-troubleshooting-code-block-size-limit-sql-example"></a>

Il codice di esempio seguente legge il file `large_sql_query.sql` da un bucket Amazon S3 e quindi esegue la query di grandi dimensioni che il file contiene.

```
s3 = boto3.resource('s3') 
def read_s3_content({{bucket_name}}, {{key}}): 
    response = s3.Object({{bucket_name}}, {{key}}).get() 
    return response['Body'].read() 

# SQL 
sql = read_s3_content('{{bucket_name}}', 'large_sql_query.sql') 
df = spark.sql(sql)
```

### PySpark esempio
<a name="notebooks-spark-troubleshooting-code-block-size-limit-pyspark-example"></a>

Il seguente esempio di codice legge il file `large_py_spark.py` da Amazon S3 e quindi esegue il blocco di codice di grandi dimensioni contenuto nel file.

```
s3 = boto3.resource('s3') 
 
def read_s3_content({{bucket_name}}, {{key}}): 
    response = s3.Object({{bucket_name}}, {{key}}).get() 
    return response['Body'].read() 
     
# PySpark 
py_spark_code = read_s3_content('{{bucket_name}}', 'large_py_spark.py') 
exec(py_spark_code)
```