Функция преобразования в Spark Streaming позволяет выполнять любые преобразования в базовых RDD в потоке. Например, вы можете объединить два RDD в потоковой передаче с использованием Transform, в котором одним RDD будет некоторое RDD, сделанное из текстового файла или параллельной коллекции, а другое RDD поступает из Stream текстового файла / сокета и т. Д.
Карта работает с каждым элементом RDD в определенной партии и приводит к RDD после применения функции, переданной в Map.
Относительно межплатформенного: Ваш лучший выбор состоит в том, чтобы, вероятно, записать определенный для платформы код, и затем импортировать его условно. например,
import sys
if sys.platform == 'win32':
import win32_sysinfo as sysinfo
elif sys.platform == 'darwin':
import mac_sysinfo as sysinfo
elif 'linux' in sys.platform:
import linux_sysinfo as sysinfo
#etc
print 'Memory available:', sysinfo.memory_available()
Для определенных ресурсов, как Anthony указывает, можно получить доступ /proc
в соответствии с Linux. Для Windows у Вас могло быть введение по абсолютному адресу вокруг в Microsoft Script Repository . Я не уверен, где получить такую информацию о Macs, но я могу думать о большом веб-сайте, где Вы могли спросить:-)
В среде Linux Вы могли читать из/proc файловой системы.
~$ cat /proc/meminfo
MemTotal: 2076816 kB
MemFree: 130284 kB
Buffers: 192664 kB
Cached: 1482760 kB
SwapCached: 0 kB
Active: 206584 kB
Inactive: 1528608 kB
HighTotal: 1179484 kB
HighFree: 120768 kB
LowTotal: 897332 kB
LowFree: 9516 kB
SwapTotal: 2650684 kB
SwapFree: 2650632 kB
Dirty: 64 kB
Writeback: 12 kB
AnonPages: 59668 kB
Mapped: 22008 kB
Slab: 200744 kB
PageTables: 1220 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
CommitLimit: 3689092 kB
Committed_AS: 263892 kB
VmallocTotal: 114680 kB
VmallocUsed: 3604 kB
VmallocChunk: 110752 kB
Я рекомендую модуль платформы:
http://doc.astro-wise.org/platform.html
Похоже, что Вы хотите получить намного больше информации, чем стандартные предложения библиотеки Python. На вашем месте я загрузил бы исходный код для 'PS' или 'вершины', или версии Gnome/KDE того же или любого количества системного мониторинга / построение графика программ, которые, более вероятно, будут иметь весь необходимый Unix кросс-платформенные биты, видеть то, что они делают, и затем выполняют необходимые собственные вызовы с ctypes.
Это тривиально для обнаружения платформы. Например, с ctypes Вы могли бы попытаться загрузить libc.so, если это бросает попытку исключения загрузить 'msvcrt.dll' и так далее. Не говоря уже о простой проверке имени операционной системы с os.name. Тогда просто делегат звонит в Ваш новый межплатформенный API к соответствующей определенной для платформы (жаль) реализации.
, Когда Вы будете сделаны, не забывайте загружать получающийся пакет на pypi.
Существует PSI (информация о Системе Python) проект с той целью, но они еще не покрывают Windows.
можно, вероятно, использовать PSI и recpies как этот и создать основную библиотеку, которая удовлетворяет потребности.