Изменить только один столбец-разделитель PYTHON

Я пробовал все методы, описанные здесь, и здесь без успеха, и, наконец, понял, что вам нужно использовать каналы вместо того, чтобы использовать SSHClient непосредственно для вызова exec_command (это не работает в фоновом режиме) :

client = paramiko.SSHClient()
client.connect(
    ip_address, username='root', pkey=paramiko_key, timeout=5)
client.exec_command('python script.py > /dev/null 2>&1 &')

Вы должны создать и использовать канал, это работает в фоновом режиме:

client = paramiko.SSHClient()
client.connect(
    ip_address, username='root', pkey=paramiko_key, timeout=5)
transport = client.get_transport()
channel = transport.open_session()
channel.exec_command('python script.py > /dev/null 2>&1 &')

Так что nohup, dtach, screen и т. д. на самом деле не нужны.

-1
задан kalehmann 6 March 2019 в 13:36
поделиться

1 ответ

Это дает вам то, что вы хотите, учитывая ввод:

a[0].split('"')[1].replace(",", "#")

Но что-то подсказывает мне, что это не слишком полезно / общее.

Но, в любом случае, решение проблемы такого рода, вероятно, будет включать следующие два метода строки / списка: split и replace

https://docs.python.org/3/ library / stdtypes.html # str.split

https://docs.python.org/3/library/stdtypes.html#str.replace

[1113 ] update

Итак, если вам нужно использовать RDD-искру, вы можете сначала создать RDD, используя список строк (еще не CSV-файл)

>>> rdd = sc.parallelize(a)
>>> rdd.take(1)
['0,Italy,"Aromas include tropical fruit, broom, brimstone and dried herb. The palate isnt overly expressive, offering unripened apple, citrus and dried sage alongside brisk acidity.",Vulk\xc3\xa0 Bianco,87,,Sicily & Sardinia,Etna,,Kerin O\xe2\x80\x99Keefe,@kerinokeefe,Nicosia 2013 Vulk\xc3\xa0 Bianco (Etna),White Blend,Nicosia']
>>> processed_rdd = rdd.map(lambda row: row.split('"')[0] + row.split('"')[1].replace(",", "#") + row.split('"')[2])
>>> processed_rdd.take(1)
['0,Italy,Aromas include tropical fruit# broom# brimstone and dried herb. The palate isnt overly expressive# offering unripened apple# citrus and dried sage alongside brisk acidity.,Vulk\xc3\xa0 Bianco,87,,Sicily & Sardinia,Etna,,Kerin O\xe2\x80\x99Keefe,@kerinokeefe,Nicosia 2013 Vulk\xc3\xa0 Bianco (Etna),White Blend,Nicosia']

Есть несколько предположения Я делаю, потому что вы предоставили только один пример строки.

Эти предположения касаются существования этой строки в двойных кавычках " ", которая является столбцом с запятыми, нуждающимися в замене.

Далее, я предполагаю, что " нет ни в одном из других столбцов.

Я также предполагаю, что этот столбец не нуждается в тех " после обработки.

Объяснение

Метод rdd map отобразит функцию на каждую строку в СДР, а лямбда, которую принимает map, возвращает новую строку. Итак, здесь я отображаю эту замещающую цепочку команд для каждой строки в СДР (а затем в примере я take один)

0
ответ дан Nevermore 6 March 2019 в 13:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: