簡體   English   中英

將注釋放在多行語句之間(帶有行繼續)

[英]Put comments in between multi-line statement (with line continuation)

當我編寫以下pyspark命令時:

# comment 1
df = df.withColumn('explosion', explode(col('col1'))).filter(col('explosion')['sub_col1'] == 'some_string') \
    # comment 2
    .withColumn('sub_col2', from_unixtime(col('explosion')['sub_col2'])) \
    # comment 3
    .withColumn('sub_col3', from_unixtime(col('explosion')['sub_col3']))

我收到以下錯誤:

.withColumn('sub_col2', from_unixtime(col('explosion')['sub_col2']))
^
IndentationError: unexpected indent

有沒有辦法在pyspark的多行命令行之間寫注釋?

這不是pyspark問題,而是違反python語法的問題。

考慮以下示例:

a, b, c = range(3)
a +\
# add b
b +\
# add c
c

結果是:

    a +# add b
              ^
SyntaxError: invalid syntax

\\是連續字符,python將下一行中的任何內容解釋為緊隨其后發生的錯誤,從而引起您的錯誤。

解決此問題的一種方法是改用括號:

(a +
# add b
b +
# add c
c)

分配給變量時,它看起來像

# do a sum of 3 numbers
addition = (a +
            # add b
            b +
            # add c
            c)

或您的情況:

# comment 1
df = (df.withColumn('explosion', explode(col('col1')))
    .filter(col('explosion')['sub_col1'] == 'some_string')
    # comment 2
    .withColumn('sub_col2', from_unixtime(col('explosion')['sub_col2']))
    # comment 3
    .withColumn('sub_col3', from_unixtime(col('explosion')['sub_col3'])))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM