Здесь нет ярлыка. Pyspark ожидает, что левый и правый кадры данных будут иметь разные наборы имен полей (за исключением ключа соединения).
Одним из решений было бы префикс каждого имени поля с помощью «left_» или «right_» следующим образом:
# Obtain columns lists
left_cols = df.columns
right_cols = df2.columns
# Prefix each dataframe's field with "left_" or "right_"
df = df.selectExpr([col + ' as left_' + col for col in left_cols])
df2 = df2.selectExpr([col + ' as right_' + col for col in right_cols])
# Perform join
df3 = df.alias('l').join(df2.alias('r'), on='c_0')
В дополнение к уже упомянутым xsel и xclip есть также uclip . Из описания страницы руководства:
uclip - это интерфейс командной строки для буфера обмена X. Он либо копирует текст, из FILE или из стандартного ввода в буфер обмена X или печатает буфер обмена X в стандартный вывод вне. uclip поддерживает Unicode и поддерживает локали (в отличие от других подобных коммунальные услуги). uclip был написан с использованием Qt.
Обновление: очевидно, uclip не была такой хорошей рекомендацией, потому что в настоящее время он не работает для копирования, см. здесь описание проблемы (и, возможно, решение когда-нибудь?).
Попробуйте xsel . Он творит чудеса, но на самом деле он работает не с буфером обмена, а с буфером выбора X.
cat file | xsel
, а затем вы можете щелкнуть колесо мыши, чтобы вставить содержимое.